rework intl strategy, titler upgrades, fonts fixes, igor ru.po
authorGood Guy <good1.2guy@gmail.com>
Wed, 22 Mar 2017 20:16:04 +0000 (14:16 -0600)
committerGood Guy <good1.2guy@gmail.com>
Wed, 22 Mar 2017 20:16:04 +0000 (14:16 -0600)
13 files changed:
cinelerra-5.1/cinelerra/colorpicker.C
cinelerra-5.1/cinelerra/exportedl.C
cinelerra-5.1/cinelerra/formatcheck.C
cinelerra-5.1/cinelerra/mwindow.C
cinelerra-5.1/cinelerra/renderprofiles.C
cinelerra-5.1/guicast/bcresources.C
cinelerra-5.1/guicast/language.h
cinelerra-5.1/plugins/titler/titler.C
cinelerra-5.1/plugins/titler/titler.h
cinelerra-5.1/plugins/titler/titlerwindow.C
cinelerra-5.1/plugins/titler/titlerwindow.h
cinelerra-5.1/po/ru.po
cinelerra-5.1/po/xlat.sh

index 60fcfad9fd779c6bc37aff2fb2ca5d3614d026f8..21ffb2ce281b3f07b31f3f6a88e8bde069ad7586 100644 (file)
@@ -34,6 +34,9 @@
 #include <string.h>
 #include <unistd.h>
 
 #include <string.h>
 #include <unistd.h>
 
+#undef MSGQUAL
+#define MSGQUAL "colorpicker"
+
 #define PALETTE_DATA "palette.dat"
 
 ColorThread::ColorThread(int do_alpha, const char *title)
 #define PALETTE_DATA "palette.dat"
 
 ColorThread::ColorThread(int do_alpha, const char *title)
@@ -171,17 +174,17 @@ void ColorWindow::create_objects()
        add_tool(history = new PaletteHistory(this, 10, y));
 
        x += 240;
        add_tool(history = new PaletteHistory(this, 10, y));
 
        x += 240;
-       add_tool(new BC_Title(x, y =y0, _("H:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("S:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("V:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=40, _("R:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("G:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("B:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=40, _("Y:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("U:"), SMALLFONT));
-       add_tool(new BC_Title(x, y+=25, _("V:"), SMALLFONT));
+       add_tool(new BC_Title(x, y =y0, C_("H:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, C_("S:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, D_("colorpicker_value#V:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=40, C_("R:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, C_("G:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, C_("B:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=40, C_("Y:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, C_("U:"), SMALLFONT));
+       add_tool(new BC_Title(x, y+=25, D_("colorpicker_Cr#V:"), SMALLFONT));
        if( thread->do_alpha )
        if( thread->do_alpha )
-               add_tool(new BC_Title(x, y+=40, _("A:"), SMALLFONT));
+               add_tool(new BC_Title(x, y+=40, C_("A:"), SMALLFONT));
        x += 24;
        add_tool(hue = new PaletteHue(this, x, y= y0));
        add_tool(sat = new PaletteSat(this, x, y+=25));
        x += 24;
        add_tool(hue = new PaletteHue(this, x, y= y0));
        add_tool(sat = new PaletteSat(this, x, y+=25));
index bce96d15e96faeff4f1967f70bcaaf9ebeec7ef0..6e34caaad9c689ba32e7430d006b790cc0fe9433 100644 (file)
 #include "tracks.h"
 #include "transition.h"
 
 #include "tracks.h"
 #include "transition.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
-
 #include <ctype.h>
 #include <string.h>
 
 #include <ctype.h>
 #include <string.h>
 
index 85914c46e634adcb01ad2ba27efe87190d219e65..42adf3c8639c765bf8e5aa2f49317085e5fece73 100644 (file)
 #include "file.h"
 #include "errorbox.h"
 #include "formatcheck.h"
 #include "file.h"
 #include "errorbox.h"
 #include "formatcheck.h"
+#include "language.h"
 #include "mwindow.inc"
 
 #include "mwindow.inc"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 FormatCheck::FormatCheck(Asset *asset)
 {
        this->asset = asset;
 FormatCheck::FormatCheck(Asset *asset)
 {
        this->asset = asset;
index d02fe0bbc1ae53894840d4e566af3e3eb22c81a2..6b45541b3f32530e220213818f8d9cb34fcda1ee 100644 (file)
@@ -466,6 +466,7 @@ void MWindow::check_language()
 {
        char curr_lang[BCTEXTLEN]; curr_lang[0] = 0;
        const char *env_lang = getenv("LANGUAGE");
 {
        char curr_lang[BCTEXTLEN]; curr_lang[0] = 0;
        const char *env_lang = getenv("LANGUAGE");
+       if( !env_lang ) env_lang = getenv("LC_ALL");
        if( !env_lang ) env_lang = getenv("LANG");
        if( !env_lang ) {
                snprintf(curr_lang, sizeof(curr_lang), "%s-%s.%s",
        if( !env_lang ) env_lang = getenv("LANG");
        if( !env_lang ) {
                snprintf(curr_lang, sizeof(curr_lang), "%s-%s.%s",
index f689c4431e190294c3368bed769c0e0e2e234025..3f2cb74b614912c794863b337585d76debf8e971 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "clip.h"
  */
 
 #include "clip.h"
+#include "language.h"
 #include "renderprofiles.h"
 #include "mwindow.h"
 #include "theme.h"
 #include "renderprofiles.h"
 #include "mwindow.h"
 #include "theme.h"
 #include "errorbox.h"
 #include "mwindowgui.h"
 
 #include "errorbox.h"
 #include "mwindowgui.h"
 
-#include <libintl.h>
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
 #define LISTWIDTH 200
 
 RenderProfileItem::RenderProfileItem(const char *text, int value)
 #define LISTWIDTH 200
 
 RenderProfileItem::RenderProfileItem(const char *text, int value)
index 6e8e1ca7aaf70fa1f8ae419c8fbcf72316d0335c..8c9d1b24653e3a96925cc8d052d979cc08fc05be 100644 (file)
@@ -1440,7 +1440,7 @@ BC_FontEntry *BC_Resources::find_fontentry(const char *displayname, int style,
                        {
                                if(!style_match)
                                        style_match = entry;
                        {
                                if(!style_match)
                                        style_match = entry;
-                               if(!preferred_match && (entry->style & preferred))
+                               if(!preferred_match && entry->fixed_style == preferred)
                                        preferred_match = entry;
                        }
                }
                                        preferred_match = entry;
                        }
                }
index b1bcf751b7bec00897b16f5cad76435c05cc5102..83092869f47e66c17f273fa715d828795fc07ba9 100644 (file)
 #ifndef LANGUAGE_H
 #define LANGUAGE_H
 
 #ifndef LANGUAGE_H
 #define LANGUAGE_H
 
-
-
 #include <libintl.h>
 #include <libintl.h>
-
-
-#define _(String) gettext(String)
-#define gettext_noop(String) String
-#define N_(String) gettext_noop (String)
-
-
+#include <string.h>
+
+#define _(msgid) gettext(msgid)
+#define gettext_noop(msgid) msgid
+#define N_(msgid) gettext_noop(msgid)
+
+// for contextual use:
+//  #undef MSGQUAL
+//  #define MSGQUAL "qual_id"
+// C_: msgid decorated as: MSGQUAL#msg_id implicitly
+// D_: msgid decorated as: qual_id#msg_id explicitly
+// see po/xlat.sh for details
+
+#define MSGQUAL 0
+// qualifier from MSGQUAL
+#define C_(msgid) ((MSGQUAL)? msgqual(MSGQUAL,msgid) : gettext(msgid))
+// qualifier from msgid
+#define D_(msgid) msgtext(msgid)
+
+static inline char *msgtext(const char *msgid)
+{
+  char *msgstr = gettext(msgid);
+  if( msgstr == msgid ) {
+    for( char *cp=msgstr; *cp!=0; ) if( *cp++ == '#' ) return cp;
+    msgstr = (char*) msgid;
+  }
+  return msgstr;
+}
+
+static inline char *msgqual(const char *msgqual,const char *msgid)
+{
+  char msg[strlen(msgid) + strlen(msgqual) + 2], *cp = msg;
+  for( const char *bp=msgqual; *bp!=0; *cp++=*bp++ );
+  *cp++ = '#';
+  for( const char *bp=msgid; *bp!=0; *cp++=*bp++ );
+  *cp = 0;
+  if( (cp=gettext(msg)) == msg ) cp = (char*)msgid;
+  return cp;
+}
 
 #endif
 
 #endif
-
-
-
-
-
-
-
index aea73e5a240e482e1431d1aadc9cc55f11d0232a..dde50aa37bc9a0b7c98f572d31891a831d69059d 100644 (file)
@@ -61,7 +61,6 @@
 #include <endian.h>
 #include <byteswap.h>
 #include <iconv.h>
 #include <endian.h>
 #include <byteswap.h>
 #include <iconv.h>
-#include <wctype.h>
 #include <sys/stat.h>
 #include <fontconfig/fontconfig.h>
 
 #include <sys/stat.h>
 #include <fontconfig/fontconfig.h>
 
@@ -103,7 +102,7 @@ TitleConfig::TitleConfig()
        wtext[0] = 0;  wlen = 0;
        title_x = title_y = 0.0;
        title_w = title_h = 0;
        wtext[0] = 0;  wlen = 0;
        title_x = title_y = 0.0;
        title_w = title_h = 0;
-       window_w = 800;
+       window_w = 860;
        window_h = 460;
        next_keyframe_position = 0;
        prev_keyframe_position = 0;
        window_h = 460;
        next_keyframe_position = 0;
        prev_keyframe_position = 0;
@@ -302,13 +301,16 @@ void GlyphUnit::process_package(LoadPackage *package)
                        glyph->font->path);
                result = 1;
        }
                        glyph->font->path);
                result = 1;
        }
-
        if( !result ) {
                int gindex = FT_Get_Char_Index(freetype_face, glyph->char_code);
        if( !result ) {
                int gindex = FT_Get_Char_Index(freetype_face, glyph->char_code);
-
-//printf("GlyphUnit::process_package 1 %c\n", glyph->char_code);
-// Char not found
+               if( !gindex && !freetype_face->charmap && // if no default charmap
+                   freetype_face->charmaps && freetype_face->charmaps[0] &&
+                   !FT_Select_Charmap(freetype_face, freetype_face->charmaps[0]->encoding) ) {
+                       gindex = FT_Get_Char_Index(freetype_face, glyph->char_code);
+               }
                if( gindex == 0 ) {
                if( gindex == 0 ) {
+printf("GlyphUnit::process_package 1 glyph not found (%s) %04x, '%c'\n",
+ glyph->font->displayname, (unsigned)glyph->char_code, (unsigned)glyph->char_code);
                        BC_Resources *resources =  BC_WindowBase::get_resources();
                        // Search replacement font
                        if( resources->find_font_by_char(glyph->char_code, new_path, freetype_face) ) {
                        BC_Resources *resources =  BC_WindowBase::get_resources();
                        // Search replacement font
                        if( resources->find_font_by_char(glyph->char_code, new_path, freetype_face) ) {
@@ -1476,14 +1478,14 @@ BC_FontEntry* TitleMain::get_font(const char *font_name, int style)
 {
        if( !strcmp("fixed", font_name) )
                font_name = FIXED_FONT;
 {
        if( !strcmp("fixed", font_name) )
                font_name = FIXED_FONT;
-       int flavor =
+       int flavor = FL_WIDTH_MASK |
            ((style & BC_FONT_ITALIC) != 0 ? FL_SLANT_ITALIC | FL_SLANT_OBLIQUE : FL_SLANT_ROMAN) |
            ((style & BC_FONT_BOLD) != 0 ? FL_WEIGHT_BOLD | FL_WEIGHT_DEMIBOLD |
                        FL_WEIGHT_EXTRABOLD| FL_WEIGHT_BLACK | FL_WEIGHT_EXTRABLACK :
                        FL_WEIGHT_BOOK | FL_WEIGHT_NORMAL | FL_WEIGHT_MEDIUM |
                        FL_WEIGHT_LIGHT | FL_WEIGHT_EXTRALIGHT | FL_WEIGHT_THIN);
 
            ((style & BC_FONT_ITALIC) != 0 ? FL_SLANT_ITALIC | FL_SLANT_OBLIQUE : FL_SLANT_ROMAN) |
            ((style & BC_FONT_BOLD) != 0 ? FL_WEIGHT_BOLD | FL_WEIGHT_DEMIBOLD |
                        FL_WEIGHT_EXTRABOLD| FL_WEIGHT_BLACK | FL_WEIGHT_EXTRABLACK :
                        FL_WEIGHT_BOOK | FL_WEIGHT_NORMAL | FL_WEIGHT_MEDIUM |
                        FL_WEIGHT_LIGHT | FL_WEIGHT_EXTRALIGHT | FL_WEIGHT_THIN);
 
-       int mask = FL_WEIGHT_MASK | FL_SLANT_MASK;
+       int mask = FL_WEIGHT_MASK | FL_SLANT_MASK | FL_WIDTH_MASK;
 
        BC_Resources *resources =  BC_WindowBase::get_resources();
        BC_FontEntry *font = resources->find_fontentry(font_name, flavor, mask, style);
 
        BC_Resources *resources =  BC_WindowBase::get_resources();
        BC_FontEntry *font = resources->find_fontentry(font_name, flavor, mask, style);
@@ -1499,16 +1501,18 @@ BC_FontEntry* TitleMain::config_font()
 }
 
 
 }
 
 
-static inline bool is_ltr(wchar_t wch) { return (wch>='a' && wch<='z') || (wch>='A' && wch<='Z'); }
-static inline bool is_nbr(wchar_t wch) { return (wch>='0' && wch<='9'); }
+static inline bool is_ltr(wchar_t wch) { return iswalpha(wch); }
+static inline bool is_nbr(wchar_t wch) { return iswdigit(wch); }
 static inline bool is_ws(wchar_t wch) { return wch==' ' || wch=='\t'; }
 static inline bool is_idch(wchar_t wch) { return is_ltr(wch) || is_nbr(wch) || wch=='_'; }
 
 // return eof=-1, chr=0, opener=1, closer=2
 int TitleParser::wget(wchar_t &wch)
 {
 static inline bool is_ws(wchar_t wch) { return wch==' ' || wch=='\t'; }
 static inline bool is_idch(wchar_t wch) { return is_ltr(wch) || is_nbr(wch) || wch=='_'; }
 
 // return eof=-1, chr=0, opener=1, closer=2
 int TitleParser::wget(wchar_t &wch)
 {
-       char *ip = id, *tp = text;  *ip = 0;  *tp = 0;
-       int ilen = sizeof(id), tlen = sizeof(text), ich;
+       wchar_t *wip = wid, *wtp = wtxt;  *wip = 0;  *wtp = 0;
+       int ilen = sizeof(wid)/sizeof(wid[0]);
+       int tlen = sizeof(wtxt)/sizeof(wtxt[0]);
+       int ich;
        while( (ich=wnext()) >= 0 ) {
                if( ich == '\\' ) {
                        if( (ich=wnext()) == '\n' ) continue;
        while( (ich=wnext()) >= 0 ) {
                if( ich == '\\' ) {
                        if( (ich=wnext()) == '\n' ) continue;
@@ -1524,23 +1528,38 @@ int TitleParser::wget(wchar_t &wch)
        int ret = 1;  long pos = tell();
        if( (ich=wnext()) == '/' ) { ret = 2; ich = wnext(); }
        if( is_ltr(ich) ) {
        int ret = 1;  long pos = tell();
        if( (ich=wnext()) == '/' ) { ret = 2; ich = wnext(); }
        if( is_ltr(ich) ) {
-               *ip++ = ich;
+               *wip++ = ich;
                while( is_idch(ich=wnext()) )
                while( is_idch(ich=wnext()) )
-                       if( --ilen > 0 ) *ip++ = ich;
+                       if( --ilen > 0 ) *wip++ = ich;
        }
        }
-       *ip = 0;
+       *wip = 0;
        while( is_ws(ich) ) ich = wnext();
        while( ich >= 0 && ich != '>' ) {
                if( ich == '\n' || ich == '<' ) { ich = -1;  break; }
                if( ich == '\\' && (ich=wnext()) < 0 ) break;
        while( is_ws(ich) ) ich = wnext();
        while( ich >= 0 && ich != '>' ) {
                if( ich == '\n' || ich == '<' ) { ich = -1;  break; }
                if( ich == '\\' && (ich=wnext()) < 0 ) break;
-               if( --tlen > 0 ) *tp++ = ich;
+               if( --tlen > 0 ) *wtp++ = ich;
                ich = wnext();
        }
                ich = wnext();
        }
-       *tp = 0;
+       *wtp = 0;
        if( ich < 0 ) { ich = '<';  seek(pos);  ret = 0; }
        wch = ich;
        return ret;
 }
        if( ich < 0 ) { ich = '<';  seek(pos);  ret = 0; }
        wch = ich;
        return ret;
 }
+int TitleParser::tget(wchar_t &wch)
+{
+       int ret = wget(wch);
+       if( ret > 0 ) {
+               int wid_len = wcslen(wid)+1;
+               BC_Resources::encode(
+                       BC_Resources::wide_encoding, plugin->config.encoding,
+                       (char*)wid,wid_len*sizeof(wid[0]), (char *)id,sizeof(id));
+               int wtxt_len = wcslen(wtxt)+1;
+               BC_Resources::encode(
+                       BC_Resources::wide_encoding, plugin->config.encoding,
+                       (char*)wtxt,wtxt_len*sizeof(wtxt[0]), (char *)text,sizeof(text));
+       }
+       return ret;
+}
 
 TitleGlyph *TitleMain::get_glyph(FT_ULong char_code, BC_FontEntry *font, int size, int style)
 {
 
 TitleGlyph *TitleMain::get_glyph(FT_ULong char_code, BC_FontEntry *font, int size, int style)
 {
@@ -1793,18 +1812,18 @@ int TitleCurNudge::set(const char *txt)
 
 int TitleParser::set_attributes(int ret)
 {
 
 int TitleParser::set_attributes(int ret)
 {
-        if( !strcmp(id,_("nudge")) )  return ret>1 ? cur_nudge.unset(text)  : cur_nudge.set(text);
-        if( !strcmp(id,_("color")) )  return ret>1 ? cur_color.unset(text)  : cur_color.set(text);
-        if( !strcmp(id,_("alpha")) )  return ret>1 ? cur_alpha.unset(text)  : cur_alpha.set(text);
-        if( !strcmp(id,_("font")) )   return ret>1 ? cur_font.unset(text)   : cur_font.set(text);
-        if( !strcmp(id,_("size")) )   return ret>1 ? cur_size.unset(text)   : cur_size.set(text);
-        if( !strcmp(id,_("bold")) )   return ret>1 ? cur_bold.unset(text)   : cur_bold.set(text);
-        if( !strcmp(id,_("italic")) ) return ret>1 ? cur_italic.unset(text) : cur_italic.set(text);
-        if( !strcmp(id,_("caps")) )   return ret>1 ? cur_caps.unset(text)   : cur_caps.set(text);
-        if( !strcmp(id,_("ul")) )     return ret>1 ? cur_under.unset(text)  : cur_under.set(text);
-        if( !strcmp(id,_("blink")) )  return ret>1 ? cur_blink.unset(text)  : cur_blink.set(text);
-        if( !strcmp(id,_("fixed")) )  return ret>1 ? cur_fixed.unset(text)  : cur_fixed.set(text);
-        if( !strcmp(id,_("sup")) )    return ret>1 ? cur_super.unset(text)  : cur_super.set(text);
+        if( !strcmp(id,KW_NUDGE) )  return ret>1 ? cur_nudge.unset(text)  : cur_nudge.set(text);
+        if( !strcmp(id,KW_COLOR) )  return ret>1 ? cur_color.unset(text)  : cur_color.set(text);
+        if( !strcmp(id,KW_ALPHA) )  return ret>1 ? cur_alpha.unset(text)  : cur_alpha.set(text);
+        if( !strcmp(id,KW_FONT) )   return ret>1 ? cur_font.unset(text)   : cur_font.set(text);
+        if( !strcmp(id,KW_SIZE) )   return ret>1 ? cur_size.unset(text)   : cur_size.set(text);
+        if( !strcmp(id,KW_BOLD) )   return ret>1 ? cur_bold.unset(text)   : cur_bold.set(text);
+        if( !strcmp(id,KW_ITALIC) ) return ret>1 ? cur_italic.unset(text) : cur_italic.set(text);
+        if( !strcmp(id,KW_CAPS) )   return ret>1 ? cur_caps.unset(text)   : cur_caps.set(text);
+        if( !strcmp(id,KW_UL) )     return ret>1 ? cur_under.unset(text)  : cur_under.set(text);
+        if( !strcmp(id,KW_BLINK) )  return ret>1 ? cur_blink.unset(text)  : cur_blink.set(text);
+        if( !strcmp(id,KW_FIXED) )  return ret>1 ? cur_fixed.unset(text)  : cur_fixed.set(text);
+        if( !strcmp(id,KW_SUP) )    return ret>1 ? cur_super.unset(text)  : cur_super.set(text);
        return 1;
 }
 
        return 1;
 }
 
@@ -1818,45 +1837,45 @@ void TitleMain::load_glyphs()
        while( !wchrs.eof() ) {
                wchar_t wch1 = wchrs.wcur(), wch;
                long ipos = wchrs.tell();
        while( !wchrs.eof() ) {
                wchar_t wch1 = wchrs.wcur(), wch;
                long ipos = wchrs.tell();
-               int ret = wchrs.wget(wch);
+               int ret = wchrs.tget(wch);
                if( ret > 0 ) {
                        if( !wchrs.set_attributes(ret) ) continue;
                if( ret > 0 ) {
                        if( !wchrs.set_attributes(ret) ) continue;
-                       if( !strcmp(wchrs.id,"png") && add_image(wchrs.text) ) continue;
+                       if( !strcmp(wchrs.id,KW_PNG) && add_image(wchrs.text) ) continue;
                        wch = wch1;  wchrs.seek(ipos+1);
                        ret = 0;
                }
                        wch = wch1;  wchrs.seek(ipos+1);
                        ret = 0;
                }
-               if( !ret ) {
-                       int cur_caps = wchrs.cur_caps;
-                       if( cur_caps > 0 ) wch = towupper(wch);
-                       else if( cur_caps < 0 ) wch = towlower(wch);
-                       BC_FontEntry *cur_font = wchrs.cur_font;
-                       int cur_size = wchrs.cur_size;
-                       int cur_style = 0;
-                       int cur_bold  = wchrs.cur_bold;
-                       if( cur_bold ) cur_style |= BC_FONT_BOLD;
-                       int cur_italic  = wchrs.cur_italic;
-                       if( cur_italic ) cur_style |= BC_FONT_ITALIC;
-                       int cur_super = wchrs.cur_super;
-                       if( cur_super ) cur_size /= 2;
-                       int exists = 0;
-                       for( int j=0; j<title_glyphs.count(); ++j ) {
-                               TitleGlyph *glyph = title_glyphs[j];
-                               if( glyph->char_code == (FT_ULong)wch && glyph->font == cur_font &&
-                                   glyph->size == cur_size && glyph->style == cur_style ) {
-                                       exists = 1;   break;
-                               }
-                       }
+               if( ret || wch == '\n' ) continue;
 
 
-                       if( !exists && cur_font ) {
-                               total_packages++;
-                               TitleGlyph *glyph = new TitleGlyph;
-                               glyph->char_code = (FT_ULong)wch;
-                               glyph->font = cur_font;
-                               glyph->size = cur_size;
-                               glyph->style = cur_style;
-                               title_glyphs.append(glyph);
+               int cur_caps = wchrs.cur_caps;
+               if( cur_caps > 0 ) wch = towupper(wch);
+               else if( cur_caps < 0 ) wch = towlower(wch);
+               BC_FontEntry *cur_font = wchrs.cur_font;
+               int cur_size = wchrs.cur_size;
+               int cur_style = 0;
+               int cur_bold  = wchrs.cur_bold;
+               if( cur_bold ) cur_style |= BC_FONT_BOLD;
+               int cur_italic  = wchrs.cur_italic;
+               if( cur_italic ) cur_style |= BC_FONT_ITALIC;
+               int cur_super = wchrs.cur_super;
+               if( cur_super ) cur_size /= 2;
+               int exists = 0;
+               for( int j=0; j<title_glyphs.count(); ++j ) {
+                       TitleGlyph *glyph = title_glyphs[j];
+                       if( glyph->char_code == (FT_ULong)wch && glyph->font == cur_font &&
+                           glyph->size == cur_size && glyph->style == cur_style ) {
+                               exists = 1;   break;
                        }
                }
                        }
                }
+
+               if( !exists && cur_font ) {
+                       total_packages++;
+                       TitleGlyph *glyph = new TitleGlyph;
+                       glyph->char_code = (FT_ULong)wch;
+                       glyph->font = cur_font;
+                       glyph->size = cur_size;
+                       glyph->style = cur_style;
+                       title_glyphs.append(glyph);
+               }
        }
 
        if( !glyph_engine )
        }
 
        if( !glyph_engine )
@@ -1923,7 +1942,7 @@ int TitleMain::get_text()
                TitleChar *chr = 0;
                long ipos = wchrs.tell();
                wchar_t wch1 = wchrs.wcur(), wch;
                TitleChar *chr = 0;
                long ipos = wchrs.tell();
                wchar_t wch1 = wchrs.wcur(), wch;
-               int ret = wchrs.wget(wch);
+               int ret = wchrs.tget(wch);
                if( ret < 0 || wch == '\n' ) {
                        if( row->x1 > row->x2 ) row->x1 = row->x2 = 0;
                        if( row->y2 > row->y1 ) row->y1 = row->y2 = 0;
                if( ret < 0 || wch == '\n' ) {
                        if( row->x1 > row->x2 ) row->x1 = row->x2 = 0;
                        if( row->y2 > row->y1 ) row->y1 = row->y2 = 0;
@@ -1958,7 +1977,7 @@ int TitleMain::get_text()
                if( ret > 0 ) {
                        if( !wchrs.set_attributes(ret) ) continue;
                        ret = -1;
                if( ret > 0 ) {
                        if( !wchrs.set_attributes(ret) ) continue;
                        ret = -1;
-                       if( !strcmp(wchrs.id,"png") ) {
+                       if( !strcmp(wchrs.id,KW_PNG) ) {
                                VFrame *png_image = get_image(wchrs.text);
                                if( png_image ) {
                                        chr = title_chars.add(CHAR_IMAGE, png_image);
                                VFrame *png_image = get_image(wchrs.text);
                                if( png_image ) {
                                        chr = title_chars.add(CHAR_IMAGE, png_image);
@@ -2655,25 +2674,25 @@ void TitleMain::read_data(KeyFrame *keyframe)
        }
 }
 
        }
 }
 
-void TitleMain::insert_text(const char *txt, int pos)
+void TitleMain::insert_text(const wchar_t *wtxt, int pos)
 {
 {
-       int ilen = strlen(txt);
+       int len = wcslen(wtxt);
        wchar_t *wtext = config.wtext;
        int wsize = sizeof(config.wtext)-1;
        int wlen = config.wlen;
        if( pos < 0 ) pos = 0;
        if( pos > wlen ) pos = wlen;
 
        wchar_t *wtext = config.wtext;
        int wsize = sizeof(config.wtext)-1;
        int wlen = config.wlen;
        if( pos < 0 ) pos = 0;
        if( pos > wlen ) pos = wlen;
 
-       for( int i=wlen-1, j=wlen+ilen-1; i>=pos; --i,--j ) {
+       for( int i=wlen-1, j=wlen+len-1; i>=pos; --i,--j ) {
                if( j >= wsize ) continue;
                wtext[j] = wtext[i];
        }
                if( j >= wsize ) continue;
                wtext[j] = wtext[i];
        }
-       for( int i=pos, j=0; j<ilen; ++i,++j ) {
+       for( int i=pos, j=0; j<len; ++i,++j ) {
                if( i >= wsize ) break;
                if( i >= wsize ) break;
-               wtext[i] = txt[j];
+               wtext[i] = wtxt[j];
        }
 
        }
 
-       if( (wlen+=ilen) > wsize ) wlen = wsize;
+       if( (wlen+=len) > wsize ) wlen = wsize;
        wtext[wlen] = 0;
        config.wlen = wlen;
 }
        wtext[wlen] = 0;
        config.wlen = wlen;
 }
index 5192e67e2ab11064bffd53910e12e017f3e80e47..dd16988a442b4e836b2e6f18c6511194e4b6f5ee 100644 (file)
 #ifndef TITLE_H
 #define TITLE_H
 
 #ifndef TITLE_H
 #define TITLE_H
 
+#define KW_NUDGE  _("nudge")
+#define KW_COLOR  _("color")
+#define KW_ALPHA  _("alpha")
+#define KW_FONT   _("font")
+#define KW_SIZE   _("size")
+#define KW_BOLD   _("bold")
+#define KW_ITALIC _("italic")
+#define KW_CAPS   _("caps")
+#define KW_UL     _("ul")
+#define KW_BLINK  _("blink")
+#define KW_FIXED  _("fixed")
+#define KW_SUP    _("sup")
+#define KW_PNG    _("png")
+
 class TitleConfig;
 class TitleGlyph;
 class TitleGlyphs;
 class TitleConfig;
 class TitleGlyph;
 class TitleGlyphs;
@@ -72,6 +86,8 @@ class TitleMain;
 #include <ft2build.h>
 #include FT_FREETYPE_H
 #include <sys/types.h>
 #include <ft2build.h>
 #include FT_FREETYPE_H
 #include <sys/types.h>
+#include <wchar.h>
+#include <wctype.h>
 
 // Motion strategy
 #define TOTAL_PATHS 5
 
 // Motion strategy
 #define TOTAL_PATHS 5
@@ -532,6 +548,8 @@ public:
        int wcur() { return eof() ? -1 : *out; }
        int wnext() { return eof() ? -1 : *out++; }
        int wget(wchar_t &wch);
        int wcur() { return eof() ? -1 : *out; }
        int wnext() { return eof() ? -1 : *out++; }
        int wget(wchar_t &wch);
+       int tget(wchar_t &wch);
+       wchar_t wid[BCSTRLEN], wtxt[BCTEXTLEN];
        char id[BCSTRLEN], text[BCTEXTLEN];
        int set_attributes(int ret);
 
        char id[BCSTRLEN], text[BCTEXTLEN];
        int set_attributes(int ret);
 
@@ -566,7 +584,7 @@ public:
        void update_gui();
        void save_data(KeyFrame *keyframe);
        void read_data(KeyFrame *keyframe);
        void update_gui();
        void save_data(KeyFrame *keyframe);
        void read_data(KeyFrame *keyframe);
-       void insert_text(const char *txt, int pos);
+       void insert_text(const wchar_t *wtxt, int pos);
 
        void build_previews(TitleWindow *gui);
        void reset_render();
 
        void build_previews(TitleWindow *gui);
        void reset_render();
index 3b0894ce17cd48bfe57d54f305c0cb09c0c7d872..5f0a047f9db5a8810d8616350e18237376dcf8df 100644 (file)
@@ -40,8 +40,6 @@
 #include "titlerwindow.h"
 #include "bcfontentry.h"
 
 #include "titlerwindow.h"
 #include "bcfontentry.h"
 
-#include <wchar.h>
-
 static const int timeunit_formats[] =
 {
        TIME_HMS,
 static const int timeunit_formats[] =
 {
        TIME_HMS,
@@ -609,7 +607,7 @@ void TitleWindow::previous_font()
 
        font->update(fonts.values[current_font]->get_text());
        strcpy(client->config.font, fonts.values[current_font]->get_text());
 
        font->update(fonts.values[current_font]->get_text());
        strcpy(client->config.font, fonts.values[current_font]->get_text());
-       check_style(client->config.font);
+       check_style(client->config.font,1);
        client->send_configure_change();
 }
 
        client->send_configure_change();
 }
 
@@ -627,14 +625,20 @@ void  TitleWindow::next_font()
 
        font->update(fonts.values[current_font]->get_text());
        strcpy(client->config.font, fonts.values[current_font]->get_text());
 
        font->update(fonts.values[current_font]->get_text());
        strcpy(client->config.font, fonts.values[current_font]->get_text());
-       check_style(client->config.font);
+       check_style(client->config.font,1);
        client->send_configure_change();
 }
 
        client->send_configure_change();
 }
 
-int TitleWindow::insert_ibeam(const char *txt, int adv)
+int TitleWindow::insert_ibeam(const char *txt, int ofs)
 {
        int ibeam = cur_ibeam;
 {
        int ibeam = cur_ibeam;
-       client->insert_text(txt, ibeam);
+       int ilen = strlen(txt)+1;
+       wchar_t wtxt[ilen];
+       int len = BC_Resources::encode(client->config.encoding, BC_Resources::wide_encoding,
+               (char*)txt,ilen, (char *)wtxt,ilen*sizeof(wtxt[0])) / sizeof(wchar_t);
+       client->insert_text(wtxt, ibeam);
+       while( len > 0 && !wtxt[len] ) --len;
+       int adv = len+1 + ofs;
        if( (ibeam += adv) >= client->config.wlen)
                ibeam = client->config.wlen;
        text->wset_selection(-1, -1, ibeam);
        if( (ibeam += adv) >= client->config.wlen)
                ibeam = client->config.wlen;
        text->wset_selection(-1, -1, ibeam);
@@ -682,7 +686,7 @@ void TitleWindow::update()
        fade_in->update((float)client->config.fade_in);
        fade_out->update((float)client->config.fade_out);
        font->update(client->config.font);
        fade_in->update((float)client->config.fade_in);
        fade_out->update((float)client->config.fade_out);
        font->update(client->config.font);
-       check_style(client->config.font);
+       check_style(client->config.font,0);
        text->update(&client->config.wtext[0]);
        speed->update(client->config.pixels_per_second);
        outline->update((int64_t)client->config.outline_size);
        text->update(&client->config.wtext[0]);
        speed->update(client->config.pixels_per_second);
        outline->update((int64_t)client->config.outline_size);
@@ -974,7 +978,7 @@ int TitleFade::handle_event()
        return 1;
 }
 
        return 1;
 }
 
-void TitleWindow::check_style(const char *font_name)
+void TitleWindow::check_style(const char *font_name, int update)
 {
        BC_FontEntry *font_nrm = TitleMain::get_font(font_name, 0);
        BC_FontEntry *font_itl = TitleMain::get_font(font_name, BC_FONT_ITALIC);
 {
        BC_FontEntry *font_nrm = TitleMain::get_font(font_name, 0);
        BC_FontEntry *font_itl = TitleMain::get_font(font_name, BC_FONT_ITALIC);
@@ -997,6 +1001,12 @@ void TitleWindow::check_style(const char *font_name)
        }
        if( has_norm && has_bold ) bold->enable();   else bold->disable();
        if( has_norm && has_ital ) italic->enable(); else italic->disable();
        }
        if( has_norm && has_bold ) bold->enable();   else bold->disable();
        if( has_norm && has_ital ) italic->enable(); else italic->disable();
+       if( update ) {
+               int style = 0;
+               if( bold->get_value() ) style |= BC_FONT_BOLD;
+               if( italic->get_value() ) style |= BC_FONT_ITALIC;
+               client->config.style = style;
+       }
 }
 
 TitleFont::TitleFont(TitleMain *client, TitleWindow *window, int x, int y)
 }
 
 TitleFont::TitleFont(TitleMain *client, TitleWindow *window, int x, int y)
@@ -1009,7 +1019,7 @@ TitleFont::TitleFont(TitleMain *client, TitleWindow *window, int x, int y)
 int TitleFont::handle_event()
 {
        strcpy(client->config.font, get_text());
 int TitleFont::handle_event()
 {
        strcpy(client->config.font, get_text());
-       window->check_style(client->config.font);
+       window->check_style(client->config.font, 1);
        client->send_configure_change();
        return 1;
 }
        client->send_configure_change();
        return 1;
 }
@@ -1355,81 +1365,91 @@ int TitleCurPopup::handle_event()
 {
        return 1;
 }
 {
        return 1;
 }
+
+void TitleCurSubMenu::add_subitem(int popup_type, const char *fmt, va_list ap)
+{
+       char item[BCSTRLEN];
+       vsnprintf(item, sizeof(item)-1, fmt, ap);
+       item[sizeof(item)-1] = 0;
+       add_submenuitem(new TitleCurSubMenuItem(this, item, popup_type));
+}
+
 void TitleCurPopup::create_objects()
 {
        TitleCurItem *cur_item;
        TitleCurSubMenu *sub_menu;
 void TitleCurPopup::create_objects()
 {
        TitleCurItem *cur_item;
        TitleCurSubMenu *sub_menu;
-       add_item(cur_item = new TitleCurItem(this, _("nudge")));
+       char *item;
+       add_item(cur_item = new TitleCurItem(this, item = KW_NUDGE));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("nudge dx,dy")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/nudge")));
-       add_item(cur_item = new TitleCurItem(this, _("color")));
+       sub_menu->add_subitem("%s dx,dy",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_COLOR));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("color #")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("color ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/color")));
-       add_item(cur_item = new TitleCurItem(this, _("alpha")));
+       sub_menu->add_subitem(POPUP_COLOR,"%s #",item);
+       sub_menu->add_subitem("%s ",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_ALPHA));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("alpha ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("alpha 0.")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("alpha .5")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("alpha 1.")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/alpha")));
-       add_item(cur_item = new TitleCurItem(this, _("font")));
+       sub_menu->add_subitem("%s ",item);
+       sub_menu->add_subitem("%s 0.",item);
+       sub_menu->add_subitem("%s .5",item);
+       sub_menu->add_subitem("%s 1.",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_FONT));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("font name")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("font ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/font")));
-       add_item(cur_item = new TitleCurItem(this, _("size")));
+       sub_menu->add_subitem(POPUP_FONT,"%s %s",item, _("name"));
+       sub_menu->add_subitem(POPUP_OFFSET, "%s ",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_SIZE));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("size +")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("size -")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("size ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/size")));
-       add_item(cur_item = new TitleCurItem(this, _("bold")));
+       sub_menu->add_subitem("%s +",item);
+       sub_menu->add_subitem("%s -",item);
+       sub_menu->add_subitem("%s ",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_BOLD));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("bold 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("bold 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/bold")));
-       add_item(cur_item = new TitleCurItem(this, _("italic")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_ITALIC));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("italic 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("italic 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/italic")));
-       add_item(cur_item = new TitleCurItem(this, _("caps")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_CAPS));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("caps 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("caps 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("caps -1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/caps")));
-       add_item(cur_item = new TitleCurItem(this, _("ul")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("%s -1",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_UL));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("ul 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("ul 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/ul")));
-       add_item(cur_item = new TitleCurItem(this, _("blink")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_BLINK));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("blink 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("blink -1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("blink ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("blink 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/blink")));
-       add_item(cur_item = new TitleCurItem(this, _("fixed")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s -1",item);
+       sub_menu->add_subitem("%s ",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_FIXED));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("fixed ")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("fixed 20")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("fixed 10")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("fixed 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/fixed")));
-       add_item(cur_item = new TitleCurItem(this, _("sup")));
+       sub_menu->add_subitem("%s ",item);
+       sub_menu->add_subitem("%s 20",item);
+       sub_menu->add_subitem("%s 10",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_SUP));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("sup 1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("sup 0")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("sup -1")));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("/sup")));
-       add_item(cur_item = new TitleCurItem(this, _("png")));
+       sub_menu->add_subitem("%s 1",item);
+       sub_menu->add_subitem("%s 0",item);
+       sub_menu->add_subitem("%s -1",item);
+       sub_menu->add_subitem("/%s",item);
+       add_item(cur_item = new TitleCurItem(this, item = KW_PNG));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
        cur_item->add_submenu(sub_menu = new TitleCurSubMenu(cur_item));
-       sub_menu->add_submenuitem(new TitleCurSubMenuItem(sub_menu,_("png file")));
+       sub_menu->add_subitem(POPUP_PNG,"%s %s", item, _("file"));
 }
 
 TitleCurItem::TitleCurItem(TitleCurPopup *popup, const char *text)
 }
 
 TitleCurItem::TitleCurItem(TitleCurPopup *popup, const char *text)
@@ -1450,10 +1470,11 @@ TitleCurSubMenu::~TitleCurSubMenu()
 {
 }
 
 {
 }
 
-TitleCurSubMenuItem::TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text)
+TitleCurSubMenuItem::TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text, int popup_type)
  : BC_MenuItem(text)
 {
        this->submenu = submenu;
  : BC_MenuItem(text)
 {
        this->submenu = submenu;
+       this->popup_type = popup_type;
 }
 TitleCurSubMenuItem::~TitleCurSubMenuItem()
 {
 }
 TitleCurSubMenuItem::~TitleCurSubMenuItem()
 {
@@ -1463,25 +1484,26 @@ int TitleCurSubMenuItem::handle_event()
        TitleCurPopup *popup = submenu->cur_item->popup;
        TitleWindow *window = popup->window;
        const char *item_text = get_text();
        TitleCurPopup *popup = submenu->cur_item->popup;
        TitleWindow *window = popup->window;
        const char *item_text = get_text();
-       if( !strcmp(item_text, _("font name")) ) {
+       int ofs = *item_text == '/' ? 0 : -1;
+       switch( popup_type ) {
+       case POPUP_FONT: {
                int px, py;
                window->get_pop_cursor_xy(px ,py);
                window->fonts_popup->activate(px, py, 300,200);
                int px, py;
                window->get_pop_cursor_xy(px ,py);
                window->fonts_popup->activate(px, py, 300,200);
-               return 1;
-       }
-       if( !strcmp(item_text, _("color #")) ) {
+               return 1; }
+       case POPUP_COLOR: {
                window->color_popup->activate();
                window->color_popup->activate();
-               return 1;
-       }
-       if( !strcmp(item_text, _("png file")) ) {
+               return 1; }
+       case POPUP_PNG: {
                window->png_popup->activate();
                window->png_popup->activate();
-               return 1;
+               return 1; }
+       case POPUP_OFFSET:
+               ofs = -1;
+               break;
        }
        char txt[BCSTRLEN];
        sprintf(txt, "<%s>", item_text);
        }
        char txt[BCSTRLEN];
        sprintf(txt, "<%s>", item_text);
-       int adv = strlen(txt);
-       if( adv > 1 && (txt[1] != '/' && strcmp(txt,_("font"))) ) --adv;
-       return window->insert_ibeam(txt,adv);
+       return window->insert_ibeam(txt, ofs);
 }
 
 TitleFontsPopup::TitleFontsPopup(TitleMain *client, TitleWindow *window)
 }
 
 TitleFontsPopup::TitleFontsPopup(TitleMain *client, TitleWindow *window)
@@ -1515,8 +1537,8 @@ int TitleFontsPopup::handle_event()
        BC_ListBoxItem *item = get_selection(0, 0);
        if( !item ) return 1;
        const char *item_text = item->get_text();
        BC_ListBoxItem *item = get_selection(0, 0);
        if( !item ) return 1;
        const char *item_text = item->get_text();
-       char txt[BCTEXTLEN];  sprintf(txt, "<font %s>",item_text);
-       return window->insert_ibeam(txt, strlen(txt));
+       char txt[BCTEXTLEN];  sprintf(txt, "<%s %s>", KW_FONT, item_text);
+       return window->insert_ibeam(txt);
 }
 
 TitleColorPopup::TitleColorPopup(TitleMain *client, TitleWindow *window)
 }
 
 TitleColorPopup::TitleColorPopup(TitleMain *client, TitleWindow *window)
@@ -1542,8 +1564,8 @@ int TitleColorPopup::activate()
 void TitleColorPopup::handle_done_event(int result)
 {
        if( result ) return;
 void TitleColorPopup::handle_done_event(int result)
 {
        if( result ) return;
-       char txt[BCSTRLEN];  sprintf(txt, "<color #%06x>",color_value);
-       window->insert_ibeam(txt, strlen(txt));
+       char txt[BCSTRLEN];  sprintf(txt, "<%s #%06x>", KW_COLOR, color_value);
+       window->insert_ibeam(txt);
 }
 
 TitlePngPopup::TitlePngPopup(TitleMain *client, TitleWindow *window)
 }
 
 TitlePngPopup::TitlePngPopup(TitleMain *client, TitleWindow *window)
@@ -1563,8 +1585,8 @@ void TitlePngPopup::handle_done_event(int result)
        if( result ) return;
        BrowseButtonWindow *gui = (BrowseButtonWindow *)get_gui();
        const char *path = gui->get_submitted_path();
        if( result ) return;
        BrowseButtonWindow *gui = (BrowseButtonWindow *)get_gui();
        const char *path = gui->get_submitted_path();
-       char txt[BCSTRLEN];  sprintf(txt, "<png %s>",path);
-       window->insert_ibeam(txt, strlen(txt));
+       char txt[BCSTRLEN];  sprintf(txt, "<%s %s>", KW_PNG, path);
+       window->insert_ibeam(txt);
 }
 
 BC_Window *TitlePngPopup::new_gui()
 }
 
 BC_Window *TitlePngPopup::new_gui()
index 331b42b0f9553759e36987f0e5608df312e796d3..49c701bcda7a0351691d1c6f3a4a609d21b9b941 100644 (file)
@@ -33,9 +33,7 @@ class TitleInterlace;
 #include "mutex.h"
 #include "titler.h"
 
 #include "mutex.h"
 #include "titler.h"
 
-
-
-
+#include <stdarg.h>
 
 class TitleFontTumble;
 class TitleSizeTumble;
 
 class TitleFontTumble;
 class TitleSizeTumble;
@@ -94,8 +92,8 @@ public:
        void update();
        void previous_font();
        void next_font();
        void update();
        void previous_font();
        void next_font();
-       void check_style(const char *font_name);
-       int insert_ibeam(const char *txt, int adv);
+       void check_style(const char *font_name, int update);
+       int insert_ibeam(const char *txt, int ofs=0);
        void done_event(int result);
 
        TitleMain *client;
        void done_event(int result);
 
        TitleMain *client;
@@ -526,23 +524,32 @@ public:
         TitleCurPopup *popup;
 };
 
         TitleCurPopup *popup;
 };
 
+enum { POPUP_OFFSET=-1, POPUP_NONE=0, POPUP_FONT, POPUP_COLOR, POPUP_PNG, };
+
 class TitleCurSubMenu : public BC_SubMenu
 {
 public:
         TitleCurSubMenu(TitleCurItem *cur_item);
         ~TitleCurSubMenu();
 class TitleCurSubMenu : public BC_SubMenu
 {
 public:
         TitleCurSubMenu(TitleCurItem *cur_item);
         ~TitleCurSubMenu();
-
+       void add_subitem(int popup_type, const char *fmt, va_list ap);
+       void add_subitem(int popup_type, const char *fmt,...) { va_list ap;
+               va_start(ap, fmt); add_subitem(popup_type, fmt, ap); va_end(ap);
+       }
+       void add_subitem(const char *fmt,...) { va_list ap;
+               va_start(ap, fmt); add_subitem(POPUP_NONE, fmt, ap); va_end(ap);
+       }
         TitleCurItem *cur_item;
 };
 
 class TitleCurSubMenuItem : public BC_MenuItem
 {
 public:
         TitleCurItem *cur_item;
 };
 
 class TitleCurSubMenuItem : public BC_MenuItem
 {
 public:
-        TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text);
+        TitleCurSubMenuItem(TitleCurSubMenu *submenu, const char *text, int popup_type);
         ~TitleCurSubMenuItem();
         int handle_event();
 
         TitleCurSubMenu *submenu;
         ~TitleCurSubMenuItem();
         int handle_event();
 
         TitleCurSubMenu *submenu;
+       int popup_type;
 };
 
 class TitleFontsPopup : public BC_ListBox
 };
 
 class TitleFontsPopup : public BC_ListBox
index a1da7461d623645030fcd351eb5aa0095562b567..a531ea85c5f4ee41fcbc773791e9d6d43600af6e 100644 (file)
@@ -3,27 +3,28 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-
+#, fuzzy
 msgid ""
 msgstr "Project-Id-Version: Cinelerra 5.1\n"
 "Report-Msgid-Bugs-To: cinelerra@lists.cinelerra-cv.org\n"
 msgid ""
 msgstr "Project-Id-Version: Cinelerra 5.1\n"
 "Report-Msgid-Bugs-To: cinelerra@lists.cinelerra-cv.org\n"
-"POT-Creation-Date: 2017-01-29 20:15+0300\n"
-"PO-Revision-Date: 2017-01-29 22:15+0300\n"
+"POT-Creation-Date: 2017-03-11 20:15+0300\n"
+"PO-Revision-Date: 2017-03-11 22:15+0300\n"
 "Last-Translator: Igor Vladimirsky aka igor_ubuntu <sitelve@gmail.com>\n"
 "Language-Team: <sitelve@gmail.com>\n"
 "Language: ru_RU\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Last-Translator: Igor Vladimirsky aka igor_ubuntu <sitelve@gmail.com>\n"
 "Language-Team: <sitelve@gmail.com>\n"
 "Language: ru_RU\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
 
 
-#: guicast//bcbutton.C:268 guicast//bcbutton.C:276 guicast//bcbutton.C:492
-#: cinelerra//preferencesthread.C:630
+#: guicast//bcbutton.C:265 guicast//bcbutton.C:273 guicast//bcbutton.C:489
+#: cinelerra//preferencesthread.C:631
 msgid "OK"
 msgstr "ОК"
 
 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
+#: guicast//bcbutton.C:321 guicast//bcbutton.C:329 guicast//bcbutton.C:337
+#: guicast//bcbutton.C:516 guicast//bcbutton.C:518 guicast//bcbutton.C:525
 #: cinelerra//confirmquit.C:107 cinelerra//confirmquit.C:109
 #: cinelerra//confirmquit.C:107 cinelerra//confirmquit.C:109
-#: cinelerra//preferencesthread.C:658 cinelerra//preferencesthread.C:660
+#: cinelerra//preferencesthread.C:659 cinelerra//preferencesthread.C:661
 msgid "Cancel"
 msgstr "Прервать"
 
 msgid "Cancel"
 msgstr "Прервать"
 
@@ -32,8 +33,8 @@ msgstr "Прервать"
 msgid "cannot connect to X server.\n"
 msgstr "cannot connect to X server.\n"
 
 msgid "cannot connect to X server.\n"
 msgstr "cannot connect to X server.\n"
 
-#: guicast//bccapture.C:67 guicast//bcdisplay.C:60
-#: guicast//bcdisplayinfo.C:242 guicast//bcwindowbase.C:668
+#: guicast//bccapture.C:67 guicast//bcdisplay.C:60 guicast//bcdisplayinfo.C:242
+#: guicast//bcwindowbase.C:675
 #, c-format
 msgid "'DISPLAY' environment variable not set.\n"
 msgstr "DISPLAY' environment variable not set.\n"
 #, c-format
 msgid "'DISPLAY' environment variable not set.\n"
 msgstr "DISPLAY' environment variable not set.\n"
@@ -102,15 +103,15 @@ msgstr "Удалить файлы"
 msgid "Refresh"
 msgstr "Обновить"
 
 msgid "Refresh"
 msgstr "Обновить"
 
-#: guicast//bcfilebox.C:1299 cinelerra//newfolder.C:37
+#: guicast//bcfilebox.C:1293 cinelerra//newfolder.C:37
 msgid ": New folder"
 msgstr ": Новая папка"
 
 msgid ": New folder"
 msgstr ": Новая папка"
 
-#: guicast//bcfilebox.C:1314
+#: guicast//bcfilebox.C:1308
 msgid ": Rename"
 msgstr ": Переименование"
 
 msgid ": Rename"
 msgstr ": Переименование"
 
-#: guicast//bcfilebox.C:1329
+#: guicast//bcfilebox.C:1323
 msgid ": Delete"
 msgstr ": Удаление"
 
 msgid ": Delete"
 msgstr ": Удаление"
 
@@ -136,13 +137,13 @@ msgid "Enter the name of the folder:"
 msgstr "Введите имя папки:"
 
 #: guicast//bcnewfolder.C:62 cinelerra//newfolder.C:62
 msgstr "Введите имя папки:"
 
 #: guicast//bcnewfolder.C:62 cinelerra//newfolder.C:62
-#: cinelerra//pluginclient.C:318
+#: cinelerra//pluginclient.C:319
 msgid "Untitled"
 msgstr "Безымянный"
 
 #: guicast//bcpopup.C:36 guicast//bcpopup.C:54 cinelerra//canvas.C:1195
 msgid "Fullscreen"
 msgid "Untitled"
 msgstr "Безымянный"
 
 #: guicast//bcpopup.C:36 guicast//bcpopup.C:54 cinelerra//canvas.C:1195
 msgid "Fullscreen"
-msgstr "Ð\9dа весь экран"
+msgstr "Ð\92о весь экран"
 
 #: guicast//bcpopup.C:88
 msgid "Popup"
 
 #: guicast//bcpopup.C:88
 msgid "Popup"
@@ -160,7 +161,7 @@ msgstr "Выбрать из недавно использованных"
 msgid "Enter a new name for the file:"
 msgstr "Введите новое имя для файла"
 
 msgid "Enter a new name for the file:"
 msgstr "Введите новое имя для файла"
 
-#: guicast//bcresources.C:1493
+#: guicast//bcresources.C:1506
 #, c-format
 msgid "Conversion from %s to %s is not available\n"
 msgstr "Конвертация из %s в %s недоступна.\n"
 #, c-format
 msgid "Conversion from %s to %s is not available\n"
 msgstr "Конвертация из %s в %s недоступна.\n"
@@ -180,7 +181,7 @@ msgstr "BC_Theme::check_used: Images aren't used.\n"
 msgid "%s: opengl initialization failed failed\n"
 msgstr "%s: opengl initialization failed failed\n"
 
 msgid "%s: opengl initialization failed failed\n"
 msgstr "%s: opengl initialization failed failed\n"
 
-#: guicast//bcwindowbase.C:213
+#: guicast//bcwindowbase.C:219
 #, c-format
 msgid ""
 "BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\n"
 #, c-format
 msgid ""
 "BC_WindowBase::~BC_WindowBase window deleted but opengl deletion is not\n"
@@ -228,8 +229,7 @@ msgstr "Футы+кадры"
 msgid "Hours:Minutes:Seconds"
 msgstr "Часы:Мин:Сек."
 
 msgid "Hours:Minutes:Seconds"
 msgstr "Часы:Мин:Сек."
 
-#: guicast//units.h:71 cinelerra//interfaceprefs.C:231
-#: cinelerra//patchbay.C:93
+#: guicast//units.h:71 cinelerra//interfaceprefs.C:240 cinelerra//patchbay.C:93
 msgid "Seconds"
 msgstr "Секунды"
 
 msgid "Seconds"
 msgstr "Секунды"
 
@@ -276,7 +276,7 @@ msgstr "Путь к устройству:"
 
 #: cinelerra//adeviceprefs.C:318 cinelerra//adeviceprefs.C:385
 #: cinelerra//adeviceprefs.C:570 cinelerra//adeviceprefs.C:587
 
 #: cinelerra//adeviceprefs.C:318 cinelerra//adeviceprefs.C:385
 #: cinelerra//adeviceprefs.C:570 cinelerra//adeviceprefs.C:587
-#: cinelerra//adeviceprefs.C:589 cinelerra//assetedit.C:415
+#: cinelerra//adeviceprefs.C:589 cinelerra//assetedit.C:399
 #: cinelerra//fileformat.C:89 cinelerra//formatwindow.C:48
 msgid "Bits:"
 msgstr "Биты:"
 #: cinelerra//fileformat.C:89 cinelerra//formatwindow.C:48
 msgid "Bits:"
 msgstr "Биты:"
@@ -294,7 +294,7 @@ msgid "Server:"
 msgstr "Сервер:"
 
 #: cinelerra//adeviceprefs.C:442 cinelerra//adeviceprefs.C:493
 msgstr "Сервер:"
 
 #: cinelerra//adeviceprefs.C:442 cinelerra//adeviceprefs.C:493
-#: cinelerra//interfaceprefs.C:206 cinelerra//performanceprefs.C:209
+#: cinelerra//interfaceprefs.C:215 cinelerra//performanceprefs.C:209
 #: cinelerra//vdeviceprefs.C:268
 msgid "Port:"
 msgstr "Порт:"
 #: cinelerra//vdeviceprefs.C:268
 msgid "Port:"
 msgstr "Порт:"
@@ -363,141 +363,141 @@ msgstr "Панорама"
 msgid "pan"
 msgstr "панорама"
 
 msgid "pan"
 msgstr "панорама"
 
-#: cinelerra//assetedit.C:225
+#: cinelerra//assetedit.C:209
 msgid ": Asset Info"
 msgstr ": Информация о ресурсе"
 
 msgid ": Asset Info"
 msgstr ": Информация о ресурсе"
 
-#: cinelerra//assetedit.C:295
+#: cinelerra//assetedit.C:279
 msgid ": Asset path"
 msgstr ": Путь к ресурсу"
 
 msgid ": Asset path"
 msgstr ": Путь к ресурсу"
 
-#: cinelerra//assetedit.C:295
+#: cinelerra//assetedit.C:279
 msgid "Select a file for this asset:"
 msgstr "Выберите файл для этого ресурса:"
 
 msgid "Select a file for this asset:"
 msgstr "Выберите файл для этого ресурса:"
 
-#: cinelerra//assetedit.C:300
+#: cinelerra//assetedit.C:284
 msgid "File format:"
 msgstr "Формат файла:"
 
 msgid "File format:"
 msgstr "Формат файла:"
 
-#: cinelerra//assetedit.C:310
+#: cinelerra//assetedit.C:294
 msgid "Bytes:"
 msgid "Bytes:"
-msgstr "Ð\91айÑ\82Ñ\8b:"
+msgstr "РазмеÑ\80 (в Ð±Ð°Ð¹Ñ\82аÑ\85):"
 
 
-#: cinelerra//assetedit.C:339
+#: cinelerra//assetedit.C:323
 msgid "Bitrate (bits/sec):"
 msgstr "Битрейт (бит/сек):"
 
 msgid "Bitrate (bits/sec):"
 msgstr "Битрейт (бит/сек):"
 
-#: cinelerra//assetedit.C:354 cinelerra//formattools.C:223
+#: cinelerra//assetedit.C:338 cinelerra//formattools.C:203
 msgid "Audio:"
 msgstr "Аудио:"
 
 msgid "Audio:"
 msgstr "Аудио:"
 
-#: cinelerra//assetedit.C:362 cinelerra//assetedit.C:507
-#: cinelerra//fileexr.C:599 cinelerra//fileffmpeg.C:557
+#: cinelerra//assetedit.C:346 cinelerra//assetedit.C:491
+#: cinelerra//fileexr.C:599 cinelerra//fileffmpeg.C:562
 #: cinelerra//filesndfile.C:405 cinelerra//filetga.C:927
 #: cinelerra//filetiff.C:612
 msgid "Compression:"
 msgstr "Сжатие:"
 
 #: cinelerra//filesndfile.C:405 cinelerra//filetga.C:927
 #: cinelerra//filetiff.C:612
 msgid "Compression:"
 msgstr "Сжатие:"
 
-#: cinelerra//assetedit.C:374 cinelerra//fileformat.C:77 cinelerra//new.C:289
+#: cinelerra//assetedit.C:358 cinelerra//fileformat.C:77 cinelerra//new.C:281
 #: cinelerra//setformat.C:354 plugins/livevideo/livevideo.C:226
 msgid "Channels:"
 msgstr "Каналы:"
 
 #: cinelerra//setformat.C:354 plugins/livevideo/livevideo.C:226
 msgid "Channels:"
 msgstr "Каналы:"
 
-#: cinelerra//assetedit.C:394 cinelerra//fileformat.C:83
+#: cinelerra//assetedit.C:378 cinelerra//fileformat.C:83
 msgid "Sample rate:"
 msgstr "Частота дискрет.:"
 
 msgid "Sample rate:"
 msgstr "Частота дискрет.:"
 
-#: cinelerra//assetedit.C:436 cinelerra//fileformat.C:102
+#: cinelerra//assetedit.C:420 cinelerra//fileformat.C:102
 msgid "Header length:"
 msgstr "Длина заголовка:"
 
 msgid "Header length:"
 msgstr "Длина заголовка:"
 
-#: cinelerra//assetedit.C:448 cinelerra//fileformat.C:109
+#: cinelerra//assetedit.C:432 cinelerra//fileformat.C:109
 #: cinelerra//filesndfile.C:424 cinelerra//formatwindow.C:64
 msgid "Byte order:"
 msgstr "Порядок байтов:"
 
 #: cinelerra//filesndfile.C:424 cinelerra//formatwindow.C:64
 msgid "Byte order:"
 msgstr "Порядок байтов:"
 
-#: cinelerra//assetedit.C:469 cinelerra//assetedit.C:885
+#: cinelerra//assetedit.C:453 cinelerra//assetedit.C:869
 msgid "Lo-Hi"
 msgstr "Lo-Hi"
 
 msgid "Lo-Hi"
 msgstr "Lo-Hi"
 
-#: cinelerra//assetedit.C:471 cinelerra//assetedit.C:903
+#: cinelerra//assetedit.C:455 cinelerra//assetedit.C:887
 msgid "Hi-Lo"
 msgstr "Hi-Lo"
 
 msgid "Hi-Lo"
 msgstr "Hi-Lo"
 
-#: cinelerra//assetedit.C:485
+#: cinelerra//assetedit.C:469
 msgid "Values are unsigned"
 msgstr "Беззнаковые целые"
 
 msgid "Values are unsigned"
 msgstr "Беззнаковые целые"
 
-#: cinelerra//assetedit.C:487 cinelerra//assetedit.C:921
+#: cinelerra//assetedit.C:471 cinelerra//assetedit.C:905
 #: cinelerra//fileformat.C:194
 msgid "Values are signed"
 msgstr "Знаковые целые"
 
 #: cinelerra//fileformat.C:194
 msgid "Values are signed"
 msgstr "Знаковые целые"
 
-#: cinelerra//assetedit.C:500 cinelerra//formattools.C:260
+#: cinelerra//assetedit.C:484 cinelerra//formattools.C:240
 msgid "Video:"
 msgstr "Видео:"
 
 msgid "Video:"
 msgstr "Видео:"
 
-#: cinelerra//assetedit.C:518 cinelerra//setformat.C:394
+#: cinelerra//assetedit.C:502 cinelerra//setformat.C:394
 msgid "Frame rate:"
 msgstr "Част. кадров:"
 
 msgid "Frame rate:"
 msgstr "Част. кадров:"
 
-#: cinelerra//assetedit.C:537 cinelerra//scale.C:210 cinelerra//scale.C:214
+#: cinelerra//assetedit.C:521 cinelerra//scale.C:210 cinelerra//scale.C:214
 #: cinelerra//setformat.C:409 plugins/freeverb/freeverb.C:330
 #: plugins/photoscale/photoscale.C:66
 msgid "Width:"
 msgstr "Ширина:"
 
 #: cinelerra//setformat.C:409 plugins/freeverb/freeverb.C:330
 #: plugins/photoscale/photoscale.C:66
 msgid "Width:"
 msgstr "Ширина:"
 
-#: cinelerra//assetedit.C:545 cinelerra//scale.C:220 cinelerra//scale.C:224
+#: cinelerra//assetedit.C:529 cinelerra//scale.C:220 cinelerra//scale.C:224
 #: cinelerra//setformat.C:416 plugins/photoscale/photoscale.C:60
 #: plugins/photoscale/photoscale.C:76
 msgid "Height:"
 msgstr "Высота:"
 
 #: cinelerra//setformat.C:416 plugins/photoscale/photoscale.C:60
 #: plugins/photoscale/photoscale.C:76
 msgid "Height:"
 msgstr "Высота:"
 
-#: cinelerra//assetedit.C:556
+#: cinelerra//assetedit.C:540
 msgid "Actual width:"
 msgstr ""
 
 msgid "Actual width:"
 msgstr ""
 
-#: cinelerra//assetedit.C:566
+#: cinelerra//assetedit.C:550
 msgid "Actual height:"
 msgstr ""
 
 msgid "Actual height:"
 msgstr ""
 
-#: cinelerra//assetedit.C:575
+#: cinelerra//assetedit.C:559
 msgid "Fix interlacing:"
 msgstr "Чересстрочность:"
 
 msgid "Fix interlacing:"
 msgstr "Чересстрочность:"
 
-#: cinelerra//assetedit.C:579
+#: cinelerra//assetedit.C:563
 msgid "Asset's interlacing:"
 msgstr "Чересстроч-ь ресурса:"
 
 msgid "Asset's interlacing:"
 msgstr "Чересстроч-ь ресурса:"
 
-#: cinelerra//assetedit.C:593
+#: cinelerra//assetedit.C:577
 msgid "Interlace correction:"
 msgstr "Ручная коррекция ч.:"
 
 msgid "Interlace correction:"
 msgstr "Ручная коррекция ч.:"
 
-#: cinelerra//assetedit.C:607
+#: cinelerra//assetedit.C:591
 msgid "Reel Name:"
 msgstr "Имя рулона:"
 
 msgid "Reel Name:"
 msgstr "Имя рулона:"
 
-#: cinelerra//assetedit.C:613
+#: cinelerra//assetedit.C:597
 msgid "Reel Number:"
 msgstr "Номер рулона:"
 
 msgid "Reel Number:"
 msgstr "Номер рулона:"
 
-#: cinelerra//assetedit.C:619
+#: cinelerra//assetedit.C:603
 msgid "Time Code Start:"
 msgstr "Старт. таймкод:"
 
 msgid "Time Code Start:"
 msgstr "Старт. таймкод:"
 
-#: cinelerra//assetedit.C:711
+#: cinelerra//assetedit.C:695
 msgid "Automatically Fix Interlacing"
 msgstr "Автоматическая коррекция ч."
 
 msgid "Automatically Fix Interlacing"
 msgstr "Автоматическая коррекция ч."
 
-#: cinelerra//assetedit.C:989
+#: cinelerra//assetedit.C:973
 msgid "Detail"
 msgstr "Подробнее"
 
 msgid "Detail"
 msgstr "Подробнее"
 
-#: cinelerra//assetedit.C:1006
+#: cinelerra//assetedit.C:990
 msgid "Asset Detail"
 msgstr "Подробная информация о ресурсе"
 
 msgid "Asset Detail"
 msgstr "Подробная информация о ресурсе"
 
-#: cinelerra//assetedit.C:1051
+#: cinelerra//assetedit.C:1035
 msgid "no info available"
 msgstr "нет доступной информации"
 
 msgid "no info available"
 msgstr "нет доступной информации"
 
@@ -530,7 +530,7 @@ msgid "View in new window"
 msgstr "Вид (просмотр) в новом окне"
 
 #: cinelerra//assetpopup.C:295 cinelerra//mainmenu.C:870
 msgstr "Вид (просмотр) в новом окне"
 
 #: cinelerra//assetpopup.C:295 cinelerra//mainmenu.C:870
-#: cinelerra//swindow.C:555
+#: cinelerra//swindow.C:543
 msgid "Paste"
 msgstr "Вставить"
 
 msgid "Paste"
 msgstr "Вставить"
 
@@ -585,12 +585,12 @@ msgstr "failed to set output format.\n"
 #: cinelerra//audioalsa.C:305
 #, c-format
 msgid "Configured ALSA device does not support %d channel operation.\n"
 #: cinelerra//audioalsa.C:305
 #, c-format
 msgid "Configured ALSA device does not support %d channel operation.\n"
-msgstr "Конфигурация ALSA устройства не поддерживает операции %d канала.\n"
+msgstr ""
 
 #: cinelerra//audioalsa.C:316
 #, c-format
 msgid " Configured ALSA device does not support %u Hz playback.\n"
 
 #: cinelerra//audioalsa.C:316
 #, c-format
 msgid " Configured ALSA device does not support %u Hz playback.\n"
-msgstr "Конфигурация ALSA устройства не поддерживает воспроизведение %u Hz.\n"
+msgstr ""
 
 #: cinelerra//audiooss.C:201 cinelerra//audiooss.C:203
 #: cinelerra//audiooss.C:207 cinelerra//audiooss.C:209
 
 #: cinelerra//audiooss.C:201 cinelerra//audiooss.C:203
 #: cinelerra//audiooss.C:207 cinelerra//audiooss.C:209
@@ -668,7 +668,7 @@ msgstr ": Ресурсы"
 
 #: cinelerra//awindowgui.C:517 cinelerra//awindowgui.C:1248
 #: cinelerra//awindowgui.C:1267 cinelerra//channelinfo.C:340
 
 #: cinelerra//awindowgui.C:517 cinelerra//awindowgui.C:1248
 #: cinelerra//awindowgui.C:1267 cinelerra//channelinfo.C:340
-#: cinelerra//dbwindow.C:591 plugins/titler/title.C:1128
+#: cinelerra//dbwindow.C:591 plugins/titler/titler.C:1145
 msgid "Title"
 msgstr "Титры"
 
 msgid "Title"
 msgstr "Титры"
 
@@ -745,7 +745,7 @@ msgstr "Правка..."
 msgid "ladspa"
 msgstr "ladspa"
 
 msgid "ladspa"
 msgstr "ladspa"
 
-#: cinelerra//awindowgui.C:2020 cinelerra//fileffmpeg.C:911
+#: cinelerra//awindowgui.C:2020 cinelerra//fileffmpeg.C:909
 msgid "ffmpeg"
 msgstr "ffmpeg"
 
 msgid "ffmpeg"
 msgstr "ffmpeg"
 
@@ -822,13 +822,13 @@ msgstr "Невременной"
 msgid "Timed"
 msgstr "Временной"
 
 msgid "Timed"
 msgstr "Временной"
 
-#: cinelerra//batch.C:141 cinelerra//batchrender.C:958
-#: cinelerra//ffmpeg.C:2200 cinelerra//ffmpeg.C:2310 cinelerra//file.C:1349
-#: cinelerra//file.C:1377 cinelerra//interfaceprefs.C:886
-#: cinelerra//interlacemodes.h:34 cinelerra//loadmode.C:93
-#: cinelerra//new.C:857 cinelerra//record.C:723 cinelerra//vdeviceprefs.C:638
-#: plugins/motion2point/motionwindow.C:796
-#: plugins/motion2point/motionwindow.C:867 plugins/timefront/timefront.C:419
+#: cinelerra//batch.C:141 cinelerra//batchrender.C:930 cinelerra//ffmpeg.C:2276
+#: cinelerra//ffmpeg.C:2386 cinelerra//file.C:1349 cinelerra//file.C:1377
+#: cinelerra//interfaceprefs.C:928 cinelerra//interlacemodes.h:34
+#: cinelerra//loadmode.C:93 cinelerra//new.C:847 cinelerra//record.C:723
+#: cinelerra//vdeviceprefs.C:638 plugins/motion2point/motionwindow.C:797
+#: plugins/motion2point/motionwindow.C:868 plugins/timefront/timefront.C:419
+#: plugins/titler/titler.C:2351
 msgid "Unknown"
 msgstr "Неизвестно"
 
 msgid "Unknown"
 msgstr "Неизвестно"
 
@@ -858,134 +858,134 @@ msgstr "Пакетный рендеринг..."
 msgid "Shift-B"
 msgstr "Shift-B"
 
 msgid "Shift-B"
 msgstr "Shift-B"
 
-#: cinelerra//batchrender.C:436 cinelerra//bdcreate.C:231
-#: cinelerra//dvdcreate.C:282
+#: cinelerra//batchrender.C:409 cinelerra//bdcreate.C:283
+#: cinelerra//dvdcreate.C:283
 #, c-format
 msgid "Unable to save: %s"
 msgstr "Невозможно сохранить: %s"
 
 #, c-format
 msgid "Unable to save: %s"
 msgstr "Невозможно сохранить: %s"
 
-#: cinelerra//batchrender.C:506
+#: cinelerra//batchrender.C:479
 #, c-format
 msgid "EDL %s not found.\n"
 msgstr "EDL %s не найден.\n"
 
 #, c-format
 msgid "EDL %s not found.\n"
 msgstr "EDL %s не найден.\n"
 
-#: cinelerra//batchrender.C:508 cinelerra//file.C:275
-#: cinelerra//formatcheck.C:51 cinelerra//formatcheck.C:62
-#: cinelerra//formatcheck.C:71 cinelerra//menueffects.C:148
+#: cinelerra//batchrender.C:481 cinelerra//file.C:275
+#: cinelerra//formatcheck.C:47 cinelerra//formatcheck.C:58
+#: cinelerra//formatcheck.C:67 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:175
 #: cinelerra//quit.C:76 cinelerra//quit.C:86 cinelerra//recordaudio.C:248
 #: cinelerra//menueffects.C:159 cinelerra//menueffects.C:259
 #: cinelerra//menueffects.C:267 cinelerra//menueffects.C:308
 #: cinelerra//menueffects.C:470 cinelerra//packagerenderer.C:175
 #: cinelerra//quit.C:76 cinelerra//quit.C:86 cinelerra//recordaudio.C:248
-#: cinelerra//recordvideo.C:248 cinelerra//render.C:273
-#: cinelerra//render.C:297 cinelerra//render.C:908
-#: cinelerra//renderprofiles.C:264 cinelerra//savefile.C:102
-#: cinelerra//savefile.C:209
+#: cinelerra//recordvideo.C:248 cinelerra//render.C:273 cinelerra//render.C:297
+#: cinelerra//render.C:905 cinelerra//renderprofiles.C:260
+#: cinelerra//savefile.C:102 cinelerra//savefile.C:209
 msgid ": Error"
 msgstr ": Ошибка"
 
 msgid ": Error"
 msgstr ": Ошибка"
 
-#: cinelerra//batchrender.C:521 cinelerra//batchrender.C:523
+#: cinelerra//batchrender.C:494 cinelerra//batchrender.C:496
 #, c-format
 msgid "%d job EDLs do not match session edl\n"
 #, c-format
 msgid "%d job EDLs do not match session edl\n"
-msgstr ""
+msgstr "EDL %d заданий не соответствуют EDL их сессий.\n"
+"EDL сессий имеют несохранённые изменения.\n"
 
 
-#: cinelerra//batchrender.C:524
+#: cinelerra//batchrender.C:497
 #, c-format
 msgid "press cancel to abandon batch render"
 #, c-format
 msgid "press cancel to abandon batch render"
-msgstr ""
+msgstr "Вы можете отказаться от пакет. рендеринга, нажав кнопку 'Закрыть'."
 
 
-#: cinelerra//batchrender.C:754
+#: cinelerra//batchrender.C:727
 msgid ": Batch Render"
 msgstr ": Пакетный рендеринг"
 
 msgid ": Batch Render"
 msgstr ": Пакетный рендеринг"
 
-#: cinelerra//batchrender.C:781
+#: cinelerra//batchrender.C:754
 msgid "Output path:"
 msgstr "Путь выведения в файл:"
 
 msgid "Output path:"
 msgstr "Путь выведения в файл:"
 
-#: cinelerra//batchrender.C:790
+#: cinelerra//batchrender.C:763
 msgid "EDL Path:"
 msgstr "Путь к EDL:"
 
 msgid "EDL Path:"
 msgstr "Путь к EDL:"
 
-#: cinelerra//batchrender.C:799
+#: cinelerra//batchrender.C:772
 msgid "Input EDL"
 msgid "Input EDL"
-msgstr "Ð\98мпоÑ\80Ñ\82 EDL"
+msgstr "Ð\97агÑ\80Ñ\83зка EDL"
 
 
-#: cinelerra//batchrender.C:799
+#: cinelerra//batchrender.C:772
 msgid "Select an EDL to load:"
 msgstr "Выберите EDL для загрузки:"
 
 msgid "Select an EDL to load:"
 msgstr "Выберите EDL для загрузки:"
 
-#: cinelerra//batchrender.C:822
+#: cinelerra//batchrender.C:794
 msgid "Batches to render:"
 msgstr "Пакеты для рендеринга:"
 
 msgid "Batches to render:"
 msgstr "Пакеты для рендеринга:"
 
-#: cinelerra//batchrender.C:833 cinelerra//batchrender.C:1404
-#: cinelerra//recordbatches.C:538
+#: cinelerra//batchrender.C:805 cinelerra//batchrender.C:1376
+#: cinelerra//recordbatches.C:516
 msgid "Stop"
 msgstr "Стоп"
 
 msgid "Stop"
 msgstr "Стоп"
 
-#: cinelerra//batchrender.C:835 cinelerra//batchrender.C:1436
+#: cinelerra//batchrender.C:807 cinelerra//batchrender.C:1408
 #: cinelerra//tipwindow.C:276
 msgid "Close"
 msgstr "Закрыть"
 
 #: cinelerra//tipwindow.C:276
 msgid "Close"
 msgstr "Закрыть"
 
-#: cinelerra//batchrender.C:1070 cinelerra//recordbatches.C:489
+#: cinelerra//batchrender.C:1040 cinelerra//recordbatches.C:467
 msgid "New"
 msgstr "Новый"
 
 msgid "New"
 msgstr "Новый"
 
-#: cinelerra//batchrender.C:1084 cinelerra//channeledit.C:587
+#: cinelerra//batchrender.C:1054 cinelerra//channeledit.C:587
 #: cinelerra//cwindowtool.C:1604 cinelerra//dbwindow.C:240
 #: cinelerra//cwindowtool.C:1604 cinelerra//dbwindow.C:240
-#: cinelerra//recordbatches.C:507 plugins/piano/piano.C:841
+#: cinelerra//recordbatches.C:485 plugins/piano/piano.C:841
 #: plugins/synthesizer/synthesizer.C:1377
 msgid "Delete"
 msgstr "Удалить"
 
 #: plugins/synthesizer/synthesizer.C:1377
 msgid "Delete"
 msgstr "Удалить"
 
-#: cinelerra//batchrender.C:1100
+#: cinelerra//batchrender.C:1070
 msgid "Save Jobs"
 msgstr "Сохранить список"
 
 msgid "Save Jobs"
 msgstr "Сохранить список"
 
-#: cinelerra//batchrender.C:1103
+#: cinelerra//batchrender.C:1073
 msgid "Save a Batch Render List"
 msgstr "Сохранить список пакетного рендеринга"
 
 msgid "Save a Batch Render List"
 msgstr "Сохранить список пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1146
+#: cinelerra//batchrender.C:1116
 msgid "Save Batch Render List"
 msgstr "Сохранение списка пакетного рендеринга"
 
 msgid "Save Batch Render List"
 msgstr "Сохранение списка пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1147
+#: cinelerra//batchrender.C:1117
 msgid "Enter a Batch Render filename to save as:"
 msgstr "Введите имя файла для сохран-я списка пак. рендеринга:"
 
 msgid "Enter a Batch Render filename to save as:"
 msgstr "Введите имя файла для сохран-я списка пак. рендеринга:"
 
-#: cinelerra//batchrender.C:1180
+#: cinelerra//batchrender.C:1150
 msgid "Load Jobs"
 msgstr "Загрузить список"
 
 msgid "Load Jobs"
 msgstr "Загрузить список"
 
-#: cinelerra//batchrender.C:1184
+#: cinelerra//batchrender.C:1154
 msgid "Load a previously saved Batch Render List"
 msgstr "Загрузить ранее сохранённый\n"
 "список пакетного рендеринга"
 
 msgid "Load a previously saved Batch Render List"
 msgstr "Загрузить ранее сохранённый\n"
 "список пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1224
+#: cinelerra//batchrender.C:1194
 msgid "Load Batch Render List"
 msgstr "Загрузка списка пакетного рендеринга"
 
 msgid "Load Batch Render List"
 msgstr "Загрузка списка пакетного рендеринга"
 
-#: cinelerra//batchrender.C:1225
+#: cinelerra//batchrender.C:1195
 msgid "Enter a Batch Render filename to load from:"
 msgid "Enter a Batch Render filename to load from:"
-msgstr "Введите имя загруж. файла списка пакет. рендеринга:"
+msgstr "Введите имя файла списка пакет. рендеринга:"
 
 
-#: cinelerra//batchrender.C:1256
+#: cinelerra//batchrender.C:1228
 msgid "Use Current EDL"
 msgid "Use Current EDL"
-msgstr "Использ-ть текущий EDL"
+msgstr "Использовать текущий EDL"
 
 
-#: cinelerra//batchrender.C:1270
+#: cinelerra//batchrender.C:1242
 msgid "Save to EDL Path"
 msgid "Save to EDL Path"
-msgstr ""
+msgstr "Сохранить в загруженный EDL"
 
 
-#: cinelerra//batchrender.C:1388 cinelerra//recordbatches.C:523
+#: cinelerra//batchrender.C:1360 cinelerra//recordbatches.C:501
 msgid "Start"
 msgstr "Старт"
 
 msgid "Start"
 msgstr "Старт"
 
-#: cinelerra//batchrender.C:1419
+#: cinelerra//batchrender.C:1391
 msgid "warn if jobs/session mismatched"
 msgid "warn if jobs/session mismatched"
-msgstr ""
+msgstr "предупреждать, если задание не соответствует сессии"
 
 #: cinelerra//bdcreate.C:81
 msgid "BD Render..."
 
 #: cinelerra//bdcreate.C:81
 msgid "BD Render..."
@@ -995,131 +995,132 @@ msgstr "BD-рендеринг..."
 msgid "Ctrl-d"
 msgstr "Ctrl-d"
 
 msgid "Ctrl-d"
 msgstr "Ctrl-d"
 
-#: cinelerra//bdcreate.C:129 cinelerra//dvdcreate.C:134
+#: cinelerra//bdcreate.C:175 cinelerra//dvdcreate.C:134
 #, c-format
 msgid "No EDL/Session"
 msgstr ""
 
 #, c-format
 msgid "No EDL/Session"
 msgstr ""
 
-#: cinelerra//bdcreate.C:138 cinelerra//dvdcreate.C:143
+#: cinelerra//bdcreate.C:184 cinelerra//dvdcreate.C:143
 #, c-format
 msgid "No content: %s"
 msgstr ""
 
 #, c-format
 msgid "No content: %s"
 msgstr ""
 
-#: cinelerra//bdcreate.C:146 cinelerra//dvdcreate.C:151
+#: cinelerra//bdcreate.C:192 cinelerra//dvdcreate.C:151
 #, c-format
 msgid ""
 "Unable to create directory: %s\n"
 "-- %s"
 #, c-format
 msgid ""
 "Unable to create directory: %s\n"
 "-- %s"
-msgstr ""
+msgstr "Невозможно создать директорию: %s\n"
+"-- %s"
 
 
-#: cinelerra//bdcreate.C:173 cinelerra//dvdcreate.C:177
+#: cinelerra//bdcreate.C:219 cinelerra//dvdcreate.C:177
 #, c-format
 msgid ""
 "Unable to save: %s\n"
 "-- %s"
 #, c-format
 msgid ""
 "Unable to save: %s\n"
 "-- %s"
-msgstr ""
+msgstr "Невозможно сохранить: %s\n"
+"-- %s"
 
 
-#: cinelerra//bdcreate.C:333 cinelerra//bdcreate.C:877
-#: cinelerra//dvdcreate.C:406 cinelerra//dvdcreate.C:971
+#: cinelerra//bdcreate.C:385 cinelerra//bdcreate.C:933
+#: cinelerra//dvdcreate.C:407 cinelerra//dvdcreate.C:974
 #: plugins/scaleratio/scaleratio.C:96
 msgid "Scale Ratio"
 msgstr ""
 
 #: plugins/scaleratio/scaleratio.C:96
 msgid "Scale Ratio"
 msgstr ""
 
-#: cinelerra//bdcreate.C:369
+#: cinelerra//bdcreate.C:422
 msgid "create bd"
 msgstr "создание BD"
 
 msgid "create bd"
 msgstr "создание BD"
 
-#: cinelerra//bdcreate.C:434
+#: cinelerra//bdcreate.C:487
 msgid "Must be root to mount UDFS images\n"
 msgstr ""
 
 msgid "Must be root to mount UDFS images\n"
 msgstr ""
 
-#: cinelerra//bdcreate.C:444 cinelerra//dvdcreate.C:525
+#: cinelerra//bdcreate.C:497 cinelerra//dvdcreate.C:527
 msgid "end setup, start batch render"
 msgstr ""
 
 msgid "end setup, start batch render"
 msgstr ""
 
-#: cinelerra//bdcreate.C:521 cinelerra//dvdcreate.C:603
+#: cinelerra//bdcreate.C:574 cinelerra//dvdcreate.C:605
 msgid "disk space: "
 msgstr "Диск. простр-во:"
 
 msgid "disk space: "
 msgstr "Диск. простр-во:"
 
-#: cinelerra//bdcreate.C:563 cinelerra//bdcreate.C:874
-#: cinelerra//dvdcreate.C:646 cinelerra//dvdcreate.C:968
-#: plugins/deinterlace/deinterlace.C:95
-#: plugins/denoisemjpeg/denoisemjpeg.C:248
+#: cinelerra//bdcreate.C:616 cinelerra//bdcreate.C:930
+#: cinelerra//dvdcreate.C:648 cinelerra//dvdcreate.C:971
+#: plugins/deinterlace/deinterlace.C:95 plugins/denoisemjpeg/denoisemjpeg.C:248
 msgid "Deinterlace"
 msgstr "Деинтерлейс"
 
 msgid "Deinterlace"
 msgstr "Деинтерлейс"
 
-#: cinelerra//bdcreate.C:583 cinelerra//dvdcreate.C:666 plugins/ivtc/ivtc.C:76
+#: cinelerra//bdcreate.C:636 cinelerra//dvdcreate.C:668 plugins/ivtc/ivtc.C:76
 msgid "Inverse Telecine"
 msgstr "Обратный телесин"
 
 msgid "Inverse Telecine"
 msgstr "Обратный телесин"
 
-#: cinelerra//bdcreate.C:603 cinelerra//dvdcreate.C:686
+#: cinelerra//bdcreate.C:656 cinelerra//dvdcreate.C:688
 msgid "Resize Tracks"
 msgstr ""
 
 msgid "Resize Tracks"
 msgstr ""
 
-#: cinelerra//bdcreate.C:614 cinelerra//dvdcreate.C:697
+#: cinelerra//bdcreate.C:667 cinelerra//dvdcreate.C:699
 #: cinelerra//scopewindow.C:1331 plugins/colorbalance/colorbalance.C:493
 #: plugins/gamma/gamma.C:438 plugins/histogram/histogram.C:99
 #: plugins/interpolate/interpolate.C:256
 msgid "Histogram"
 msgstr "Гистограмма"
 
 #: cinelerra//scopewindow.C:1331 plugins/colorbalance/colorbalance.C:493
 #: plugins/gamma/gamma.C:438 plugins/histogram/histogram.C:99
 #: plugins/interpolate/interpolate.C:256
 msgid "Histogram"
 msgstr "Гистограмма"
 
-#: cinelerra//bdcreate.C:624 cinelerra//dvdcreate.C:707
+#: cinelerra//bdcreate.C:677 cinelerra//dvdcreate.C:709
 msgid "Chapters at Labels"
 msgstr ""
 
 msgid "Chapters at Labels"
 msgstr ""
 
-#: cinelerra//bdcreate.C:634 cinelerra//dvdcreate.C:717
+#: cinelerra//bdcreate.C:687 cinelerra//dvdcreate.C:719
 msgid "Audio 5.1"
 msgstr "Аудио 5.1"
 
 msgid "Audio 5.1"
 msgstr "Аудио 5.1"
 
-#: cinelerra//bdcreate.C:645
+#: cinelerra//bdcreate.C:698
 msgid ": Create BD"
 msgstr ": Создание BD (Blu-ray Disc)"
 
 msgid ": Create BD"
 msgstr ": Создание BD (Blu-ray Disc)"
 
-#: cinelerra//bdcreate.C:678 cinelerra//channeledit.C:1032
-#: cinelerra//clipedit.C:188 cinelerra//dvdcreate.C:772
+#: cinelerra//bdcreate.C:731 cinelerra//channeledit.C:1032
+#: cinelerra//clipedit.C:188 cinelerra//dvdcreate.C:774
 msgid "Title:"
 msgstr "Имя:"
 
 msgid "Title:"
 msgstr "Имя:"
 
-#: cinelerra//bdcreate.C:684 cinelerra//dvdcreate.C:778
+#: cinelerra//bdcreate.C:737 cinelerra//dvdcreate.C:780
 msgid "Work path:"
 msgstr "Путь к раб. каталогу:"
 
 msgid "Work path:"
 msgstr "Путь к раб. каталогу:"
 
-#: cinelerra//bdcreate.C:691 cinelerra//dvdcreate.C:785
+#: cinelerra//bdcreate.C:744 cinelerra//dvdcreate.C:787
 msgid "Work path"
 msgstr "Путь к рабочему каталогу"
 
 msgid "Work path"
 msgstr "Путь к рабочему каталогу"
 
-#: cinelerra//bdcreate.C:691 cinelerra//dvdcreate.C:785
+#: cinelerra//bdcreate.C:744 cinelerra//dvdcreate.C:787
 msgid "Select a Work directory:"
 msgstr "Выберите рабочий каталог:"
 
 msgid "Select a Work directory:"
 msgstr "Выберите рабочий каталог:"
 
-#: cinelerra//bdcreate.C:697 cinelerra//dvdcreate.C:791
+#: cinelerra//bdcreate.C:750 cinelerra//dvdcreate.C:793
 msgid "Media:"
 msgstr "Медиа:"
 
 msgid "Media:"
 msgstr "Медиа:"
 
-#: cinelerra//bdcreate.C:708 cinelerra//dvdcreate.C:802
+#: cinelerra//bdcreate.C:761 cinelerra//dvdcreate.C:804
 #: cinelerra//recordgui.C:223
 msgid "Format:"
 msgstr "Формат:"
 
 #: cinelerra//recordgui.C:223
 msgid "Format:"
 msgstr "Формат:"
 
-#: cinelerra//bdcreate.C:715 cinelerra//dvdcreate.C:808
+#: cinelerra//bdcreate.C:768 cinelerra//dvdcreate.C:810
 #: cinelerra//resizetrackthread.C:128 plugins/pitch/pitch.C:418
 #: plugins/scale/scalewin.C:50
 msgid "Scale:"
 msgstr "Масштаб:"
 
 #: cinelerra//resizetrackthread.C:128 plugins/pitch/pitch.C:418
 #: plugins/scale/scalewin.C:50
 msgid "Scale:"
 msgstr "Масштаб:"
 
-#: cinelerra//bdcreate.C:876 cinelerra//dvdcreate.C:970
+#: cinelerra//bdcreate.C:932 cinelerra//dvdcreate.C:973
 #: plugins/photoscale/photoscale.C:291
 msgid "Auto Scale"
 msgstr ""
 
 #: plugins/photoscale/photoscale.C:291
 msgid "Auto Scale"
 msgstr ""
 
-#: cinelerra//bdcreate.C:878 cinelerra//dvdcreate.C:972
+#: cinelerra//bdcreate.C:934 cinelerra//dvdcreate.C:975
 #: plugins/scale/scale.C:90
 msgid "Scale"
 msgstr "Масштаб"
 
 #: plugins/scale/scale.C:90
 msgid "Scale"
 msgstr "Масштаб"
 
-#: cinelerra//bdcreate.C:938
+#: cinelerra//bdcreate.C:994
 msgid "* non-standard format"
 msgid "* non-standard format"
-msgstr ""
+msgstr "* non-standard format"
 
 #: cinelerra//brender.C:153
 msgid "BRender::fork_background: can't open /proc/self/cmdline.\n"
 
 #: cinelerra//brender.C:153
 msgid "BRender::fork_background: can't open /proc/self/cmdline.\n"
@@ -1135,7 +1136,7 @@ msgstr "BRender::set_video_map called to set NOT_SCANNED\n"
 msgid "BRender::set_video_map %jd: attempt to set beyond end of map %jd.\n"
 msgstr "BRender::set_video_map %jd: attempt to set beyond end of map %jd.\n"
 
 msgid "BRender::set_video_map %jd: attempt to set beyond end of map %jd.\n"
 msgstr "BRender::set_video_map %jd: attempt to set beyond end of map %jd.\n"
 
-#: cinelerra//browsebutton.C:50
+#: cinelerra//browsebutton.C:48
 msgid "Look for file"
 msgstr "Поиск файла"
 
 msgid "Look for file"
 msgstr "Поиск файла"
 
@@ -1146,47 +1147,38 @@ msgstr "В окне"
 #: cinelerra//canvas.C:1069
 msgid "Zoom 25%"
 msgstr "Масштаб 25%"
 #: cinelerra//canvas.C:1069
 msgid "Zoom 25%"
 msgstr "Масштаб 25%"
-#msgstr "Масштаб 25%"
 
 #: cinelerra//canvas.C:1070
 msgid "Zoom 33%"
 msgstr "Масштаб 33%"
 
 #: cinelerra//canvas.C:1070
 msgid "Zoom 33%"
 msgstr "Масштаб 33%"
-#msgstr "Масштаб 33%"
 
 #: cinelerra//canvas.C:1071
 msgid "Zoom 50%"
 msgstr "Масштаб 50%"
 
 #: cinelerra//canvas.C:1071
 msgid "Zoom 50%"
 msgstr "Масштаб 50%"
-#msgstr "Масштаб 50%"
 
 #: cinelerra//canvas.C:1072
 msgid "Zoom 75%"
 msgstr "Масштаб 75%"
 
 #: cinelerra//canvas.C:1072
 msgid "Zoom 75%"
 msgstr "Масштаб 75%"
-#msgstr "Масштаб 75%"
 
 #: cinelerra//canvas.C:1073 cinelerra//recordmonitor.C:851
 msgid "Zoom 100%"
 msgstr "Масштаб 100%"
 
 #: cinelerra//canvas.C:1073 cinelerra//recordmonitor.C:851
 msgid "Zoom 100%"
 msgstr "Масштаб 100%"
-#msgstr "Масштаб 100%"
 
 #: cinelerra//canvas.C:1074
 msgid "Zoom 150%"
 msgstr "Масштаб 150%"
 
 #: cinelerra//canvas.C:1074
 msgid "Zoom 150%"
 msgstr "Масштаб 150%"
-#msgstr "Масштаб 150%"
 
 #: cinelerra//canvas.C:1075
 msgid "Zoom 200%"
 msgstr "Масштаб 200%"
 
 #: cinelerra//canvas.C:1075
 msgid "Zoom 200%"
 msgstr "Масштаб 200%"
-#msgstr "Масштаб 200%"
 
 #: cinelerra//canvas.C:1076
 msgid "Zoom 300%"
 msgstr "Масштаб 300%"
 
 #: cinelerra//canvas.C:1076
 msgid "Zoom 300%"
 msgstr "Масштаб 300%"
-#msgstr "Масштаб 300%"
 
 #: cinelerra//canvas.C:1077
 msgid "Zoom 400%"
 msgstr "Масштаб 400%"
 
 #: cinelerra//canvas.C:1077
 msgid "Zoom 400%"
 msgstr "Масштаб 400%"
-#msgstr "Масштаб 400%"
 
 #: cinelerra//canvas.C:1100
 msgid "Zoom Auto"
 
 #: cinelerra//canvas.C:1100
 msgid "Zoom Auto"
@@ -1416,7 +1408,7 @@ msgid "Search"
 msgstr "Поиск"
 
 #: cinelerra//channelinfo.C:266 cinelerra//dbwindow.C:511
 msgstr "Поиск"
 
 #: cinelerra//channelinfo.C:266 cinelerra//dbwindow.C:511
-#: plugins/titler/titlewindow.C:359
+#: plugins/titler/titlerwindow.C:386
 msgid "Text:"
 msgstr "Текст:"
 
 msgid "Text:"
 msgstr "Текст:"
 
@@ -1443,132 +1435,132 @@ msgstr "Старт"
 msgid "%d found"
 msgstr "%d найдено"
 
 msgid "%d found"
 msgstr "%d найдено"
 
-#: cinelerra//channelinfo.C:962
+#: cinelerra//channelinfo.C:947
 msgid "sunmontuewedthufrisat"
 msgid "sunmontuewedthufrisat"
-msgstr ""
+msgstr "Пн Вт Ср Чт Пт Сб Вс"
 
 
-#: cinelerra//channelinfo.C:988
+#: cinelerra//channelinfo.C:973
 msgid "activate batch record when ok pressed"
 msgstr ""
 
 msgid "activate batch record when ok pressed"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1008
+#: cinelerra//channelinfo.C:993
 msgid "poweroff system when batch record done"
 msgstr "Выкл. систему по завершении\n"
 "пакетной записи"
 
 msgid "poweroff system when batch record done"
 msgstr "Выкл. систему по завершении\n"
 "пакетной записи"
 
-#: cinelerra//channelinfo.C:1023
+#: cinelerra//channelinfo.C:1008
 msgid "Find"
 msgstr "Поиск"
 
 msgid "Find"
 msgstr "Поиск"
 
-#: cinelerra//channelinfo.C:1026
+#: cinelerra//channelinfo.C:1011
 msgid "search event titles/info"
 msgstr ""
 
 msgid "search event titles/info"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1106
+#: cinelerra//channelinfo.C:1091
 #, c-format
 msgid "bad scan time: %s\n"
 msgstr ""
 
 #, c-format
 msgid "bad scan time: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1113
+#: cinelerra//channelinfo.C:1098
 #, c-format
 msgid "bad title: %s\n"
 msgstr ""
 
 #, c-format
 msgid "bad title: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1120
+#: cinelerra//channelinfo.C:1105
 #, c-format
 msgid "bad scan date: %s\n"
 msgstr ""
 
 #, c-format
 msgid "bad scan date: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1133
+#: cinelerra//channelinfo.C:1118
 #, c-format
 msgid "end before start: %s\n"
 msgstr ""
 
 #, c-format
 msgid "end before start: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1137
+#: cinelerra//channelinfo.C:1122
 #, c-format
 msgid "end time early: %s\n"
 msgstr ""
 
 #, c-format
 msgid "end time early: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1141
+#: cinelerra//channelinfo.C:1126
 #, c-format
 msgid "start time late: %s\n"
 msgstr ""
 
 #, c-format
 msgid "start time late: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1148
+#: cinelerra//channelinfo.C:1133
 #, c-format
 msgid "zero duration: %s\n"
 msgstr ""
 
 #, c-format
 msgid "zero duration: %s\n"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1233
+#: cinelerra//channelinfo.C:1218
 msgid "end channel info, start record"
 msgstr ""
 
 msgid "end channel info, start record"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1333
+#: cinelerra//channelinfo.C:1318
 msgid "Directory:"
 msgstr "Каталог:"
 
 msgid "Directory:"
 msgstr "Каталог:"
 
-#: cinelerra//channelinfo.C:1335 cinelerra//recordgui.C:156
-#: cinelerra//swindow.C:155
+#: cinelerra//channelinfo.C:1320 cinelerra//recordgui.C:156
+#: cinelerra//swindow.C:143
 msgid "Path:"
 msgstr "Путь:"
 
 msgid "Path:"
 msgstr "Путь:"
 
-#: cinelerra//channelinfo.C:1337
+#: cinelerra//channelinfo.C:1322
 msgid "Start:"
 msgstr "Старт:"
 
 msgid "Start:"
 msgstr "Старт:"
 
-#: cinelerra//channelinfo.C:1339
+#: cinelerra//channelinfo.C:1324
 msgid "Duration:"
 msgstr "Длительность"
 
 msgid "Duration:"
 msgstr "Длительность"
 
-#: cinelerra//channelinfo.C:1341 cinelerra//recordgui.C:165
+#: cinelerra//channelinfo.C:1326 cinelerra//recordgui.C:165
 msgid "Source:"
 msgstr "Источник:"
 
 msgid "Source:"
 msgstr "Источник:"
 
-#: cinelerra//channelinfo.C:1395
+#: cinelerra//channelinfo.C:1380
 msgid ": Channel Info"
 msgstr ": Информация каналов"
 
 msgid ": Channel Info"
 msgstr ": Информация каналов"
 
-#: cinelerra//channelinfo.C:1415
+#: cinelerra//channelinfo.C:1400
 msgid "Start Cron"
 msgstr "Старт Cron"
 
 msgid "Start Cron"
 msgstr "Старт Cron"
 
-#: cinelerra//channelinfo.C:1416
+#: cinelerra//channelinfo.C:1401
 msgid "Poweroff"
 msgstr ""
 
 msgid "Poweroff"
 msgstr ""
 
-#: cinelerra//channelinfo.C:1674
+#: cinelerra//channelinfo.C:1659
 #, c-format
 msgid "Recording in progress\n"
 msgstr "Идёт процесс записи\n"
 
 #, c-format
 msgid "Recording in progress\n"
 msgstr "Идёт процесс записи\n"
 
-#: cinelerra//channelinfo.C:1682
+#: cinelerra//channelinfo.C:1667
 #, c-format
 msgid "capture driver not dvb\n"
 msgstr "драйвер захвата не dvb\n"
 
 #, c-format
 msgid "capture driver not dvb\n"
 msgstr "драйвер захвата не dvb\n"
 
-#: cinelerra//channelinfo.C:1752
+#: cinelerra//channelinfo.C:1737
 #, c-format
 msgid "cannot open dvb video device\n"
 msgstr "невозможно открыть dvb видеоустройство\n"
 
 #, c-format
 msgid "cannot open dvb video device\n"
 msgstr "невозможно открыть dvb видеоустройство\n"
 
-#: cinelerra//channelinfo.C:1791
+#: cinelerra//channelinfo.C:1776
 msgid "Scan..."
 msgstr "Сканирование..."
 
 msgid "Scan..."
 msgstr "Сканирование..."
 
-#: cinelerra//channelinfo.C:1791
+#: cinelerra//channelinfo.C:1776
 msgid "Shift-S"
 msgstr "Shift-S"
 
 msgid "Shift-S"
 msgstr "Shift-S"
 
-#: cinelerra//channelinfo.C:1910 cinelerra//recordbatches.C:568
+#: cinelerra//channelinfo.C:1895 cinelerra//recordbatches.C:546
 msgid "Delete all clips."
 msgstr "Удалить все клипы"
 
 msgid "Delete all clips."
 msgstr "Удалить все клипы"
 
-#: cinelerra//channelinfo.C:1928 cinelerra//recordbatches.C:492
+#: cinelerra//channelinfo.C:1913 cinelerra//recordbatches.C:470
 #: cinelerra//recordgui.C:920
 msgid "Create new clip."
 msgstr "Создать новый клип."
 
 #: cinelerra//recordgui.C:920
 msgid "Create new clip."
 msgstr "Создать новый клип."
 
-#: cinelerra//channelinfo.C:1941 cinelerra//recordbatches.C:510
+#: cinelerra//channelinfo.C:1926 cinelerra//recordbatches.C:488
 #: cinelerra//recordgui.C:933
 msgid "Delete clip."
 msgstr "Удалить клип."
 #: cinelerra//recordgui.C:933
 msgid "Delete clip."
 msgstr "Удалить клип."
@@ -1597,29 +1589,69 @@ msgstr ": Информация о клипе"
 msgid "Comments:"
 msgstr "Комментарии:"
 
 msgid "Comments:"
 msgstr "Комментарии:"
 
-#: cinelerra//colorpicker.C:68
+#: cinelerra//colorpicker.C:77
 msgid ": "
 msgstr ": "
 
 msgid ": "
 msgstr ": "
 
-#: cinelerra//colorpicker.C:69
+#: cinelerra//colorpicker.C:78
 msgid "Color Picker"
 msgstr "Выбор цвета"
 
 msgid "Color Picker"
 msgstr "Выбор цвета"
 
-#: cinelerra//colorpicker.C:128
+#: cinelerra//colorpicker.C:177
+msgid "colorpicker#H:"
+msgstr "H:"
+
+#: cinelerra//colorpicker.C:178
+msgid "colorpicker#S:"
+msgstr "S:"
+
+#: cinelerra//colorpicker.C:179
+msgid "colorpicker_value#V:"
+msgstr "V:"
+
+#: cinelerra//colorpicker.C:180
+msgid "colorpicker#R:"
+msgstr "R:"
+
+#: cinelerra//colorpicker.C:181
+msgid "colorpicker#G:"
+msgstr "G:"
+
+#: cinelerra//colorpicker.C:182
+msgid "colorpicker#B:"
+msgstr "B:"
+
+#: cinelerra//colorpicker.C:183
+msgid "colorpicker#Y:"
+msgstr "Y:"
+
+#: cinelerra//colorpicker.C:184
+msgid "colorpicker#U:"
+msgstr "U:"
+
+#: cinelerra//colorpicker.C:185
+msgid "colorpicker_Cr#V:"
+msgstr "V:"
+
+#: cinelerra//colorpicker.C:187
+msgid "colorpicker#A:"
+msgstr "A:"
+
+#: cinelerra//colorpicker.C:203
 msgid "Hue"
 msgstr "Оттенок"
 
 msgid "Hue"
 msgstr "Оттенок"
 
-#: cinelerra//colorpicker.C:130
+#: cinelerra//colorpicker.C:205
 msgid "Saturation"
 msgstr "Насыщенность"
 
 msgid "Saturation"
 msgstr "Насыщенность"
 
-#: cinelerra//colorpicker.C:132 cinelerra//keyframegui.C:51
+#: cinelerra//colorpicker.C:207 cinelerra//keyframegui.C:51
 #: plugins/histogram/histogramwindow.C:63
 #: plugins/histogram_bezier/bistogramwindow.C:63
 msgid "Value"
 msgstr "Значение"
 
 #: plugins/histogram/histogramwindow.C:63
 #: plugins/histogram_bezier/bistogramwindow.C:63
 msgid "Value"
 msgstr "Значение"
 
-#: cinelerra//colorpicker.C:134 plugins/colorbalance/colorbalancewindow.C:58
+#: cinelerra//colorpicker.C:209 plugins/colorbalance/colorbalancewindow.C:58
 #: plugins/denoisevideo/denoisevideo.C:275 plugins/downsample/downsample.C:276
 #: plugins/histogram/histogramwindow.C:69
 #: plugins/histogram_bezier/bistogramwindow.C:69
 #: plugins/denoisevideo/denoisevideo.C:275 plugins/downsample/downsample.C:276
 #: plugins/histogram/histogramwindow.C:69
 #: plugins/histogram_bezier/bistogramwindow.C:69
@@ -1629,7 +1661,7 @@ msgstr "Значение"
 msgid "Red"
 msgstr "Красный"
 
 msgid "Red"
 msgstr "Красный"
 
-#: cinelerra//colorpicker.C:136 plugins/colorbalance/colorbalancewindow.C:62
+#: cinelerra//colorpicker.C:211 plugins/colorbalance/colorbalancewindow.C:62
 #: plugins/denoisevideo/denoisevideo.C:277 plugins/downsample/downsample.C:282
 #: plugins/histogram/histogramwindow.C:75
 #: plugins/histogram_bezier/bistogramwindow.C:75
 #: plugins/denoisevideo/denoisevideo.C:277 plugins/downsample/downsample.C:282
 #: plugins/histogram/histogramwindow.C:75
 #: plugins/histogram_bezier/bistogramwindow.C:75
@@ -1639,7 +1671,7 @@ msgstr "Красный"
 msgid "Green"
 msgstr "Зелёный"
 
 msgid "Green"
 msgstr "Зелёный"
 
-#: cinelerra//colorpicker.C:138 plugins/colorbalance/colorbalancewindow.C:66
+#: cinelerra//colorpicker.C:213 plugins/colorbalance/colorbalancewindow.C:66
 #: plugins/denoisevideo/denoisevideo.C:279 plugins/downsample/downsample.C:288
 #: plugins/histogram/histogramwindow.C:81
 #: plugins/histogram_bezier/bistogramwindow.C:81
 #: plugins/denoisevideo/denoisevideo.C:279 plugins/downsample/downsample.C:288
 #: plugins/histogram/histogramwindow.C:81
 #: plugins/histogram_bezier/bistogramwindow.C:81
@@ -1650,13 +1682,37 @@ msgstr "Зелёный"
 msgid "Blue"
 msgstr "Синий"
 
 msgid "Blue"
 msgstr "Синий"
 
-#: cinelerra//colorpicker.C:142 plugins/denoisevideo/denoisevideo.C:281
+#: cinelerra//colorpicker.C:215
+msgid "Luminance"
+msgstr ""
+
+#: cinelerra//colorpicker.C:217
+msgid "Complement Blue"
+msgstr ""
+
+#: cinelerra//colorpicker.C:219
+msgid "Complement Red"
+msgstr ""
+
+#: cinelerra//colorpicker.C:222 plugins/denoisevideo/denoisevideo.C:281
 #: plugins/downsample/downsample.C:294 plugins/linearblur/linearblur.C:300
 #: plugins/radialblur/radialblur.C:298 plugins/swapchannels/swapchannels.C:434
 #: plugins/swapchannels/swapchannels.C:453 plugins/zoomblur/zoomblur.C:310
 msgid "Alpha"
 msgstr "Альфа-канал"
 
 #: plugins/downsample/downsample.C:294 plugins/linearblur/linearblur.C:300
 #: plugins/radialblur/radialblur.C:298 plugins/swapchannels/swapchannels.C:434
 #: plugins/swapchannels/swapchannels.C:453 plugins/zoomblur/zoomblur.C:310
 msgid "Alpha"
 msgstr "Альфа-канал"
 
+#: cinelerra//colorpicker.C:1017
+msgid "hex rgb color"
+msgstr ""
+
+#: cinelerra//colorpicker.C:1062
+msgid "grab from anywhere picker"
+msgstr "Захват цвета в любой точке экрана"
+
+#: cinelerra//colorpicker.C:1083
+msgid "color history"
+msgstr "Архив ранее выбранных цветов"
+
 #: cinelerra//commercials.C:168 cinelerra//commercials.C:578
 #: cinelerra//commercials.C:797
 msgid "Cutting Ads"
 #: cinelerra//commercials.C:168 cinelerra//commercials.C:578
 #: cinelerra//commercials.C:797
 msgid "Cutting Ads"
@@ -1745,8 +1801,7 @@ msgstr ": Подтвердите выход"
 msgid "( Answering \"No\" will destroy changes )"
 msgstr "( Ответ \"Нет\" отменит все изменения. )"
 
 msgid "( Answering \"No\" will destroy changes )"
 msgstr "( Ответ \"Нет\" отменит все изменения. )"
 
-#: cinelerra//confirmquit.C:67 cinelerra//question.C:61
-#: cinelerra//reindex.C:92
+#: cinelerra//confirmquit.C:67 cinelerra//question.C:61 cinelerra//reindex.C:92
 msgid "Yes"
 msgstr "Да"
 
 msgid "Yes"
 msgstr "Да"
 
@@ -1776,7 +1831,7 @@ msgstr "Файлы уже существуют. Переписать их ?"
 
 #: cinelerra//cpanel.C:131
 msgid "Protect video from changes"
 
 #: cinelerra//cpanel.C:131
 msgid "Protect video from changes"
-msgstr "Защитить видео от изменений."
+msgstr "Защитить видео от изменений"
 
 #: cinelerra//cpanel.C:155
 msgid "Edit mask"
 
 #: cinelerra//cpanel.C:155
 msgid "Edit mask"
@@ -1878,8 +1933,7 @@ msgstr "проектор"
 msgid "mask"
 msgstr "маска"
 
 msgid "mask"
 msgstr "маска"
 
-#: cinelerra//cwindowgui.h:55 cinelerra//scale.C:383
-#: cinelerra//setformat.C:853
+#: cinelerra//cwindowgui.h:55 cinelerra//scale.C:383 cinelerra//setformat.C:853
 msgid "Auto"
 msgstr "Авто"
 
 msgid "Auto"
 msgstr "Авто"
 
@@ -1887,11 +1941,13 @@ msgstr "Авто"
 msgid "Do it"
 msgstr "Выполнить"
 
 msgid "Do it"
 msgstr "Выполнить"
 
-#: cinelerra//cwindowtool.C:385
+#: cinelerra//cwindowtool.C:385 plugins/titler/titlerwindow.C:280
+#: plugins/titler/titlerwindow.C:294
 msgid "W:"
 msgstr "Ш.:"
 
 msgid "W:"
 msgstr "Ш.:"
 
-#: cinelerra//cwindowtool.C:407
+#: cinelerra//cwindowtool.C:407 plugins/titler/titlerwindow.C:281
+#: plugins/titler/titlerwindow.C:299
 msgid "H:"
 msgstr "В.:"
 
 msgid "H:"
 msgstr "В.:"
 
@@ -2255,15 +2311,15 @@ msgstr "DVD-рендеринг..."
 msgid "Shift-D"
 msgstr "Shift-D"
 
 msgid "Shift-D"
 msgstr "Shift-D"
 
-#: cinelerra//dvdcreate.C:442
+#: cinelerra//dvdcreate.C:444
 msgid "create dvd"
 msgstr "создание DVD"
 
 msgid "create dvd"
 msgstr "создание DVD"
 
-#: cinelerra//dvdcreate.C:727
+#: cinelerra//dvdcreate.C:729
 msgid "Use FFMPEG"
 msgstr "Использ-ть FFmpeg"
 
 msgid "Use FFMPEG"
 msgstr "Использ-ть FFmpeg"
 
-#: cinelerra//dvdcreate.C:740
+#: cinelerra//dvdcreate.C:742
 msgid ": Create DVD"
 msgstr ": Создание DVD"
 
 msgid ": Create DVD"
 msgstr ": Создание DVD"
 
@@ -2323,7 +2379,7 @@ msgstr "Перейти к ... ( g )"
 
 #: cinelerra//editpanel.C:929
 msgid "Splice ( v )"
 
 #: cinelerra//editpanel.C:929
 msgid "Splice ( v )"
-msgstr "Раздвинуть ( v )"
+msgstr "Разрезать и вставить ( v )"
 
 #: cinelerra//editpanel.C:954
 msgid "Cut ( x )"
 
 #: cinelerra//editpanel.C:954
 msgid "Cut ( x )"
@@ -2444,44 +2500,44 @@ msgstr "Перекрестное затухание"
 msgid "Dissolve"
 msgstr "Наплыв"
 
 msgid "Dissolve"
 msgstr "Наплыв"
 
-#: cinelerra//exportedl.C:108
+#: cinelerra//exportedl.C:101
 #, c-format
 msgid "Warning: chopping the reel name to eight characters!\n"
 msgstr "Предупреждение: имя рулона ограничено 8 символами !\n"
 
 #, c-format
 msgid "Warning: chopping the reel name to eight characters!\n"
 msgstr "Предупреждение: имя рулона ограничено 8 символами !\n"
 
-#: cinelerra//exportedl.C:255
+#: cinelerra//exportedl.C:248
 msgid "Export EDL..."
 msgstr "Экспорт EDL..."
 
 msgid "Export EDL..."
 msgstr "Экспорт EDL..."
 
-#: cinelerra//exportedl.C:356
+#: cinelerra//exportedl.C:349
 msgid "No."
 msgstr "№"
 
 msgid "No."
 msgstr "№"
 
-#: cinelerra//exportedl.C:357
+#: cinelerra//exportedl.C:350
 msgid "Track name"
 msgstr "Название дорожки"
 
 msgid "Track name"
 msgstr "Название дорожки"
 
-#: cinelerra//exportedl.C:368
+#: cinelerra//exportedl.C:361
 msgid ": Export EDL"
 msgstr ": Экспорт EDL"
 
 msgid ": Export EDL"
 msgstr ": Экспорт EDL"
 
-#: cinelerra//exportedl.C:396
+#: cinelerra//exportedl.C:389
 msgid "Select a file to export to:"
 msgstr "Введите имя для экспорта EDL-файла:"
 
 msgid "Select a file to export to:"
 msgstr "Введите имя для экспорта EDL-файла:"
 
-#: cinelerra//exportedl.C:410 cinelerra//formattools.C:192
+#: cinelerra//exportedl.C:403 cinelerra//formattools.C:172
 msgid "Output to file"
 msgstr "Выведение в файл"
 
 msgid "Output to file"
 msgstr "Выведение в файл"
 
-#: cinelerra//exportedl.C:410 cinelerra//formattools.C:192
+#: cinelerra//exportedl.C:403 cinelerra//formattools.C:172
 msgid "Select a file to write to:"
 msgstr "Введите имя для результирующего файла:"
 
 msgid "Select a file to write to:"
 msgstr "Введите имя для результирующего файла:"
 
-#: cinelerra//exportedl.C:414
+#: cinelerra//exportedl.C:407
 msgid "Select track to be exported:"
 msgstr "Выберите экспортируемую дорожку:"
 
 msgid "Select track to be exported:"
 msgstr "Выберите экспортируемую дорожку:"
 
-#: cinelerra//exportedl.C:444
+#: cinelerra//exportedl.C:437
 msgid "Currently only CMX 3600 format is supported"
 msgstr "Поддерживается только формат CMX 3600"
 
 msgid "Currently only CMX 3600 format is supported"
 msgstr "Поддерживается только формат CMX 3600"
 
@@ -2501,144 +2557,144 @@ msgstr ""
 msgid "Feather by how many frames:"
 msgstr ""
 
 msgid "Feather by how many frames:"
 msgstr ""
 
-#: cinelerra//ffmpeg.C:47 cinelerra//pluginfclient.C:29
+#: cinelerra//ffmpeg.C:48 cinelerra//pluginfclient.C:29
 #, c-format
 msgid "%s  err: %s\n"
 msgstr "%s  err: %s\n"
 
 #, c-format
 msgid "%s  err: %s\n"
 msgstr "%s  err: %s\n"
 
-#: cinelerra//ffmpeg.C:317
+#: cinelerra//ffmpeg.C:318
 msgid "open decoder failed\n"
 msgstr "open decoder failed\n"
 
 msgid "open decoder failed\n"
 msgstr "open decoder failed\n"
 
-#: cinelerra//ffmpeg.C:320
+#: cinelerra//ffmpeg.C:321
 msgid "can't clone input file\n"
 msgstr "can't clone input file\n"
 
 msgid "can't clone input file\n"
 msgstr "can't clone input file\n"
 
-#: cinelerra//ffmpeg.C:387
+#: cinelerra//ffmpeg.C:388
 msgid "av_buffersrc_add_frame_flags failed\n"
 msgstr "av_buffersrc_add_frame_flags failed\n"
 
 msgid "av_buffersrc_add_frame_flags failed\n"
 msgstr "av_buffersrc_add_frame_flags failed\n"
 
-#: cinelerra//ffmpeg.C:1325
+#: cinelerra//ffmpeg.C:1351
 #, c-format
 msgid "options open failed %s\n"
 msgstr "options open failed %s\n"
 
 #, c-format
 msgid "options open failed %s\n"
 msgstr "options open failed %s\n"
 
-#: cinelerra//ffmpeg.C:1329
+#: cinelerra//ffmpeg.C:1355
 #, c-format
 msgid "format/codec not found %s\n"
 msgstr "format/codec not found %s\n"
 
 #, c-format
 msgid "format/codec not found %s\n"
 msgstr "format/codec not found %s\n"
 
-#: cinelerra//ffmpeg.C:1381
+#: cinelerra//ffmpeg.C:1413
 #, c-format
 msgid "err reading %s: line %d\n"
 msgstr "err reading %s: line %d\n"
 
 #, c-format
 msgid "err reading %s: line %d\n"
 msgstr "err reading %s: line %d\n"
 
-#: cinelerra//ffmpeg.C:1464
+#: cinelerra//ffmpeg.C:1496
 #, c-format
 msgid "vid%d (%d),  id 0x%06x:\n"
 msgstr "vid%d (%d),  id 0x%06x:\n"
 
 #, c-format
 msgid "vid%d (%d),  id 0x%06x:\n"
 msgstr "vid%d (%d),  id 0x%06x:\n"
 
-#: cinelerra//ffmpeg.C:1486
+#: cinelerra//ffmpeg.C:1518
 #, c-format
 msgid "aud%d (%d),  id 0x%06x:\n"
 msgstr "aud%d (%d),  id 0x%06x:\n"
 
 #, c-format
 msgid "aud%d (%d),  id 0x%06x:\n"
 msgstr "aud%d (%d),  id 0x%06x:\n"
 
-#: cinelerra//ffmpeg.C:1574
+#: cinelerra//ffmpeg.C:1606
 #, c-format
 msgid "can't stat file: %s\n"
 msgstr "can't stat file: %s\n"
 
 #, c-format
 msgid "can't stat file: %s\n"
 msgstr "can't stat file: %s\n"
 
-#: cinelerra//ffmpeg.C:1666
+#: cinelerra//ffmpeg.C:1698
 #, c-format
 msgid "bad file path: %s\n"
 msgstr "bad file path: %s\n"
 
 #, c-format
 msgid "bad file path: %s\n"
 msgstr "bad file path: %s\n"
 
-#: cinelerra//ffmpeg.C:1672
+#: cinelerra//ffmpeg.C:1704
 #, c-format
 msgid "bad file format: %s\n"
 msgstr "bad file format: %s\n"
 
 #, c-format
 msgid "bad file format: %s\n"
 msgstr "bad file format: %s\n"
 
-#: cinelerra//ffmpeg.C:1676
+#: cinelerra//ffmpeg.C:1708
 #, c-format
 msgid "mismatch audio/video file format: %s\n"
 msgstr "mismatch audio/video file format: %s\n"
 
 #, c-format
 msgid "mismatch audio/video file format: %s\n"
 msgstr "mismatch audio/video file format: %s\n"
 
-#: cinelerra//ffmpeg.C:1683
+#: cinelerra//ffmpeg.C:1718
 #, c-format
 msgid "failed: %s\n"
 msgstr "failed: %s\n"
 
 #, c-format
 msgid "failed: %s\n"
 msgstr "failed: %s\n"
 
-#: cinelerra//ffmpeg.C:1708
+#: cinelerra//ffmpeg.C:1743
 #, c-format
 msgid "get_encoder failed %s:%s\n"
 msgstr "get_encoder failed %s:%s\n"
 
 #, c-format
 msgid "get_encoder failed %s:%s\n"
 msgstr "get_encoder failed %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1724
+#: cinelerra//ffmpeg.C:1759
 #, c-format
 msgid "cant find codec %s:%s\n"
 msgstr "cant find codec %s:%s\n"
 
 #, c-format
 msgid "cant find codec %s:%s\n"
 msgstr "cant find codec %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1730
+#: cinelerra//ffmpeg.C:1765
 #, c-format
 msgid "unknown codec %s:%s\n"
 msgstr "unknown codec %s:%s\n"
 
 #, c-format
 msgid "unknown codec %s:%s\n"
 msgstr "unknown codec %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1737
+#: cinelerra//ffmpeg.C:1772
 #, c-format
 msgid "cant create stream %s:%s\n"
 msgstr "cant create stream %s:%s\n"
 
 #, c-format
 msgid "cant create stream %s:%s\n"
 msgstr "cant create stream %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1746
+#: cinelerra//ffmpeg.C:1781
 #, c-format
 msgid "duplicate audio %s:%s\n"
 msgstr "duplicate audio %s:%s\n"
 
 #, c-format
 msgid "duplicate audio %s:%s\n"
 msgstr "duplicate audio %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1752
+#: cinelerra//ffmpeg.C:1787
 #, c-format
 msgid "bad audio options %s:%s\n"
 msgstr "bad audio options %s:%s\n"
 
 #, c-format
 msgid "bad audio options %s:%s\n"
 msgstr "bad audio options %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1773
+#: cinelerra//ffmpeg.C:1808
 #, c-format
 msgid "check_sample_rate failed %s\n"
 msgstr "check_sample_rate failed %s\n"
 
 #, c-format
 msgid "check_sample_rate failed %s\n"
 msgstr "check_sample_rate failed %s\n"
 
-#: cinelerra//ffmpeg.C:1789
+#: cinelerra//ffmpeg.C:1824
 #, c-format
 msgid "duplicate video %s:%s\n"
 msgstr "duplicate video %s:%s\n"
 
 #, c-format
 msgid "duplicate video %s:%s\n"
 msgstr "duplicate video %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1795
+#: cinelerra//ffmpeg.C:1830
 #, c-format
 msgid "bad video options %s:%s\n"
 msgstr "bad video options %s:%s\n"
 
 #, c-format
 msgid "bad video options %s:%s\n"
 msgstr "bad video options %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1832
+#: cinelerra//ffmpeg.C:1867
 #, c-format
 msgid "check_frame_rate failed %s\n"
 msgstr "check_frame_rate failed %s\n"
 
 #, c-format
 msgid "check_frame_rate failed %s\n"
 msgstr "check_frame_rate failed %s\n"
 
-#: cinelerra//ffmpeg.C:1841
+#: cinelerra//ffmpeg.C:1879
 #, c-format
 msgid "not audio/video, %s:%s\n"
 msgstr "not audio/video, %s:%s\n"
 
 #, c-format
 msgid "not audio/video, %s:%s\n"
 msgstr "not audio/video, %s:%s\n"
 
-#: cinelerra//ffmpeg.C:1852
+#: cinelerra//ffmpeg.C:1893
 #, c-format
 msgid "open failed %s:%s\n"
 msgstr "open failed %s:%s\n"
 
 #, c-format
 msgid "open failed %s:%s\n"
 msgstr "open failed %s:%s\n"
 
-#: cinelerra//ffmpeg.C:2501
+#: cinelerra//ffmpeg.C:2577
 #, c-format
 msgid "av_frame_alloc failed\n"
 msgstr "av_frame_alloc failed\n"
 
 #, c-format
 msgid "av_frame_alloc failed\n"
 msgstr "av_frame_alloc failed\n"
 
-#: cinelerra//ffmpeg.C:2516
+#: cinelerra//ffmpeg.C:2592
 #, c-format
 msgid "codec open failed\n"
 msgstr "codec open failed\n"
 
 #, c-format
 msgid "codec open failed\n"
 msgstr "codec open failed\n"
 
-#: cinelerra//ffmpeg.C:2529
+#: cinelerra//ffmpeg.C:2605
 msgid "over 100 read_frame errs\n"
 msgstr "over 100 read_frame errs\n"
 
 msgid "over 100 read_frame errs\n"
 msgstr "over 100 read_frame errs\n"
 
@@ -2807,185 +2863,185 @@ msgstr "Нет опций видео для этого формата"
 msgid "Use alpha"
 msgstr "Использ. альфа-канал"
 
 msgid "Use alpha"
 msgstr "Использ. альфа-канал"
 
-#: cinelerra//fileffmpeg.C:163
+#: cinelerra//fileffmpeg.C:170
 #, c-format
 msgid "file path: %s\n"
 msgstr "путь к файлу: %s\n"
 
 #, c-format
 msgid "file path: %s\n"
 msgstr "путь к файлу: %s\n"
 
-#: cinelerra//fileffmpeg.C:167
+#: cinelerra//fileffmpeg.C:174
 #, c-format
 msgid " err: %s\n"
 msgstr " err: %s\n"
 
 #, c-format
 msgid " err: %s\n"
 msgstr " err: %s\n"
 
-#: cinelerra//fileffmpeg.C:171
+#: cinelerra//fileffmpeg.C:178
 #, c-format
 msgid "  %jd bytes\n"
 msgstr "  %jd bytes\n"
 
 #, c-format
 msgid "  %jd bytes\n"
 msgstr "  %jd bytes\n"
 
-#: cinelerra//fileffmpeg.C:176
+#: cinelerra//fileffmpeg.C:183
 #, c-format
 msgid "info:\n"
 msgstr "info:\n"
 
 #, c-format
 msgid "info:\n"
 msgstr "info:\n"
 
-#: cinelerra//fileffmpeg.C:180
+#: cinelerra//fileffmpeg.C:187
 #, c-format
 msgid "== open failed\n"
 msgstr "== open failed\n"
 
 #, c-format
 msgid "== open failed\n"
 msgstr "== open failed\n"
 
-#: cinelerra//fileffmpeg.C:384
+#: cinelerra//fileffmpeg.C:391
 msgid ": Audio Preset"
 msgstr ": Предустановки аудио"
 
 msgid ": Audio Preset"
 msgstr ": Предустановки аудио"
 
-#: cinelerra//fileffmpeg.C:436
+#: cinelerra//fileffmpeg.C:443
 msgid "Preset:"
 msgstr "Предустановки"
 
 msgid "Preset:"
 msgstr "Предустановки"
 
-#: cinelerra//fileffmpeg.C:442 cinelerra//fileffmpeg.C:593
+#: cinelerra//fileffmpeg.C:449 cinelerra//fileffmpeg.C:597
 #: cinelerra//filempeg.C:2027 cinelerra//fileogg.C:2166
 msgid "Bitrate:"
 msgstr "Битрейт:"
 
 #: cinelerra//filempeg.C:2027 cinelerra//fileogg.C:2166
 msgid "Bitrate:"
 msgstr "Битрейт:"
 
-#: cinelerra//fileffmpeg.C:447
+#: cinelerra//fileffmpeg.C:455
 msgid "Audio Options:"
 msgstr "Аудиоопции:"
 
 msgid "Audio Options:"
 msgstr "Аудиоопции:"
 
-#: cinelerra//fileffmpeg.C:452 cinelerra//fileffmpeg.C:608
+#: cinelerra//fileffmpeg.C:460 cinelerra//fileffmpeg.C:613
 msgid "view"
 msgstr "обзор"
 
 msgid "view"
 msgstr "обзор"
 
-#: cinelerra//fileffmpeg.C:529
+#: cinelerra//fileffmpeg.C:534
 msgid ": Video Preset"
 msgstr ": Предустановки видео"
 
 msgid ": Video Preset"
 msgstr ": Предустановки видео"
 
-#: cinelerra//fileffmpeg.C:597 cinelerra//filejpeg.C:318
+#: cinelerra//fileffmpeg.C:602 cinelerra//filejpeg.C:318
 #: cinelerra//filejpeglist.C:170 cinelerra//fileogg.C:2171
 #: cinelerra//formatwindow.C:108
 msgid "Quality:"
 msgstr "Качество:"
 
 #: cinelerra//filejpeglist.C:170 cinelerra//fileogg.C:2171
 #: cinelerra//formatwindow.C:108
 msgid "Quality:"
 msgstr "Качество:"
 
-#: cinelerra//fileffmpeg.C:603
+#: cinelerra//fileffmpeg.C:608
 msgid "Video Options:"
 msgstr "Видеоопции:"
 
 msgid "Video Options:"
 msgstr "Видеоопции:"
 
-#: cinelerra//fileffmpeg.C:748 cinelerra//filempeg.C:822
+#: cinelerra//fileffmpeg.C:746 cinelerra//filempeg.C:822
 #, c-format
 msgid "Creating %s\n"
 msgstr "Создание %s\n"
 
 #, c-format
 msgid "Creating %s\n"
 msgstr "Создание %s\n"
 
-#: cinelerra//fileffmpeg.C:788
+#: cinelerra//fileffmpeg.C:786
 msgid "option"
 msgstr "Опция"
 
 msgid "option"
 msgstr "Опция"
 
-#: cinelerra//fileffmpeg.C:788 plugins/bluebanana/bluebananawindow.C:2086
+#: cinelerra//fileffmpeg.C:786 plugins/bluebanana/bluebananawindow.C:2086
 msgid "value"
 msgstr "Значение"
 
 msgid "value"
 msgstr "Значение"
 
-#: cinelerra//fileffmpeg.C:910
+#: cinelerra//fileffmpeg.C:908
 msgid "codec"
 msgstr "кодек"
 
 msgid "codec"
 msgstr "кодек"
 
-#: cinelerra//fileffmpeg.C:988 cinelerra//fileffmpeg.C:1387
+#: cinelerra//fileffmpeg.C:986 cinelerra//fileffmpeg.C:1385
 #: cinelerra//pluginfclient.C:208 cinelerra//pluginfclient.C:471
 #: cinelerra//pluginfclient.C:208 cinelerra//pluginfclient.C:471
-#: cinelerra//pluginfclient.C:497 cinelerra//preferencesthread.C:606
-#: cinelerra//preferencesthread.C:608 cinelerra//setformat.C:891
+#: cinelerra//pluginfclient.C:497 cinelerra//preferencesthread.C:607
+#: cinelerra//preferencesthread.C:609 cinelerra//setformat.C:891
 msgid "Apply"
 msgstr "Применить"
 
 msgid "Apply"
 msgstr "Применить"
 
-#: cinelerra//fileffmpeg.C:1216
+#: cinelerra//fileffmpeg.C:1214
 msgid "<flags>"
 msgstr "<flags>"
 
 msgid "<flags>"
 msgstr "<flags>"
 
-#: cinelerra//fileffmpeg.C:1217
+#: cinelerra//fileffmpeg.C:1215
 msgid "<int>"
 msgstr "<int>"
 
 msgid "<int>"
 msgstr "<int>"
 
-#: cinelerra//fileffmpeg.C:1218
+#: cinelerra//fileffmpeg.C:1216
 msgid "<int64>"
 msgstr "<int64>"
 
 msgid "<int64>"
 msgstr "<int64>"
 
-#: cinelerra//fileffmpeg.C:1219
+#: cinelerra//fileffmpeg.C:1217
 msgid "<double>"
 msgstr "<double>"
 
 msgid "<double>"
 msgstr "<double>"
 
-#: cinelerra//fileffmpeg.C:1220
+#: cinelerra//fileffmpeg.C:1218
 msgid "<float>"
 msgstr "<float>"
 
 msgid "<float>"
 msgstr "<float>"
 
-#: cinelerra//fileffmpeg.C:1221
+#: cinelerra//fileffmpeg.C:1219
 msgid "<string>"
 msgstr "<string>"
 
 msgid "<string>"
 msgstr "<string>"
 
-#: cinelerra//fileffmpeg.C:1222
+#: cinelerra//fileffmpeg.C:1220
 msgid "<rational>"
 msgstr "<rational>"
 
 msgid "<rational>"
 msgstr "<rational>"
 
-#: cinelerra//fileffmpeg.C:1223
+#: cinelerra//fileffmpeg.C:1221
 msgid "<binary>"
 msgstr "<binary>"
 
 msgid "<binary>"
 msgstr "<binary>"
 
-#: cinelerra//fileffmpeg.C:1224
+#: cinelerra//fileffmpeg.C:1222
 msgid "<image_size>"
 msgstr "<image_size>"
 
 msgid "<image_size>"
 msgstr "<image_size>"
 
-#: cinelerra//fileffmpeg.C:1225
+#: cinelerra//fileffmpeg.C:1223
 msgid "<video_rate>"
 msgstr "<video_rate>"
 
 msgid "<video_rate>"
 msgstr "<video_rate>"
 
-#: cinelerra//fileffmpeg.C:1226
+#: cinelerra//fileffmpeg.C:1224
 msgid "<pix_fmt>"
 msgstr "<pix_fmt>"
 
 msgid "<pix_fmt>"
 msgstr "<pix_fmt>"
 
-#: cinelerra//fileffmpeg.C:1227
+#: cinelerra//fileffmpeg.C:1225
 msgid "<sample_fmt>"
 msgstr "<sample_fmt>"
 
 msgid "<sample_fmt>"
 msgstr "<sample_fmt>"
 
-#: cinelerra//fileffmpeg.C:1228
+#: cinelerra//fileffmpeg.C:1226
 msgid "<duration>"
 msgstr "<duration>"
 
 msgid "<duration>"
 msgstr "<duration>"
 
-#: cinelerra//fileffmpeg.C:1229
+#: cinelerra//fileffmpeg.C:1227
 msgid "<color>"
 msgstr "<color>"
 
 msgid "<color>"
 msgstr "<color>"
 
-#: cinelerra//fileffmpeg.C:1230
+#: cinelerra//fileffmpeg.C:1228
 msgid "<channel_layout>"
 msgstr "<channel_layout>"
 
 msgid "<channel_layout>"
 msgstr "<channel_layout>"
 
-#: cinelerra//fileffmpeg.C:1231
+#: cinelerra//fileffmpeg.C:1229
 msgid "<bool>"
 msgstr "<bool>"
 
 msgid "<bool>"
 msgstr "<bool>"
 
-#: cinelerra//fileffmpeg.C:1232
+#: cinelerra//fileffmpeg.C:1230
 msgid "<undef>"
 msgstr "<undef>"
 
 msgid "<undef>"
 msgstr "<undef>"
 
-#: cinelerra//fileffmpeg.C:1352
+#: cinelerra//fileffmpeg.C:1350
 msgid ": Options"
 msgstr ": Опции"
 
 msgid ": Options"
 msgstr ": Опции"
 
-#: cinelerra//fileffmpeg.C:1367
+#: cinelerra//fileffmpeg.C:1365
 msgid "Format: "
 msgstr "Формат:"
 
 msgid "Format: "
 msgstr "Формат:"
 
-#: cinelerra//fileffmpeg.C:1371
+#: cinelerra//fileffmpeg.C:1369
 msgid "Codec: "
 msgstr "Кодек:"
 
 msgid "Codec: "
 msgstr "Кодек:"
 
-#: cinelerra//fileffmpeg.C:1376 cinelerra//pluginfclient.C:456
+#: cinelerra//fileffmpeg.C:1374 cinelerra//pluginfclient.C:456
 #, c-format
 msgid "Type: "
 msgstr "Тип:"
 
 #, c-format
 msgid "Type: "
 msgstr "Тип:"
 
-#: cinelerra//fileffmpeg.C:1380 cinelerra//pluginfclient.C:461
+#: cinelerra//fileffmpeg.C:1378 cinelerra//pluginfclient.C:461
 #, c-format
 msgid "Range: "
 msgstr "Диапазон:"
 
 #, c-format
 msgid "Range: "
 msgstr "Диапазон:"
 
-#: cinelerra//fileffmpeg.C:1393
+#: cinelerra//fileffmpeg.C:1391
 msgid "Kind:"
 msgstr "Вид:"
 
 msgid "Kind:"
 msgstr "Вид:"
 
-#: cinelerra//fileffmpeg.C:1579 cinelerra//fileffmpeg.C:1608
+#: cinelerra//fileffmpeg.C:1577 cinelerra//fileffmpeg.C:1606
 #, c-format
 msgid "no codec named: %s: %s"
 msgstr "no codec named: %s: %s"
 #, c-format
 msgid "no codec named: %s: %s"
 msgstr "no codec named: %s: %s"
@@ -3149,57 +3205,57 @@ msgstr "JPEGLIST"
 #: cinelerra//filempeg.C:150
 #, c-format
 msgid "toc path:%s\n"
 #: cinelerra//filempeg.C:150
 #, c-format
 msgid "toc path:%s\n"
-msgstr ""
+msgstr "Путь к TOC-файлу:%s\n"
 
 #: cinelerra//filempeg.C:151
 #, c-format
 msgid "title path:\n"
 
 #: cinelerra//filempeg.C:151
 #, c-format
 msgid "title path:\n"
-msgstr ""
+msgstr "Путь к файлу:\n"
 
 #: cinelerra//filempeg.C:159
 #, c-format
 msgid "file path:%s\n"
 
 #: cinelerra//filempeg.C:159
 #, c-format
 msgid "file path:%s\n"
-msgstr "путь к файлу:%s\n"
+msgstr "Ð\9fуть к файлу:%s\n"
 
 #: cinelerra//filempeg.C:164
 #, c-format
 msgid "size: %s"
 
 #: cinelerra//filempeg.C:164
 #, c-format
 msgid "size: %s"
-msgstr ""
+msgstr "Размер (в байтах): %s"
 
 #: cinelerra//filempeg.C:167
 #, c-format
 msgid "  program stream\n"
 
 #: cinelerra//filempeg.C:167
 #, c-format
 msgid "  program stream\n"
-msgstr ""
+msgstr "  program stream\n"
 
 #: cinelerra//filempeg.C:169
 #, c-format
 msgid "  transport stream\n"
 
 #: cinelerra//filempeg.C:169
 #, c-format
 msgid "  transport stream\n"
-msgstr ""
+msgstr "  transport stream\n"
 
 #: cinelerra//filempeg.C:171
 #, c-format
 msgid "  video stream\n"
 
 #: cinelerra//filempeg.C:171
 #, c-format
 msgid "  video stream\n"
-msgstr ""
+msgstr "  video stream\n"
 
 #: cinelerra//filempeg.C:173
 #, c-format
 msgid "  audio stream\n"
 
 #: cinelerra//filempeg.C:173
 #, c-format
 msgid "  audio stream\n"
-msgstr ""
+msgstr "  audio stream\n"
 
 #: cinelerra//filempeg.C:182
 #, c-format
 msgid "date: %s\n"
 
 #: cinelerra//filempeg.C:182
 #, c-format
 msgid "date: %s\n"
-msgstr ""
+msgstr "Дата: %s\n"
 
 #: cinelerra//filempeg.C:185
 #, c-format
 msgid "%d video tracks\n"
 
 #: cinelerra//filempeg.C:185
 #, c-format
 msgid "%d video tracks\n"
-msgstr ""
+msgstr "%d video tracks\n"
 
 #: cinelerra//filempeg.C:192
 #, c-format
 msgid "  v%d %s %dx%d"
 
 #: cinelerra//filempeg.C:192
 #, c-format
 msgid "  v%d %s %dx%d"
-msgstr ""
+msgstr "  v%d %s %dx%d"
 
 #: cinelerra//filempeg.C:195
 #, c-format
 
 #: cinelerra//filempeg.C:195
 #, c-format
@@ -3214,17 +3270,17 @@ msgstr " (%0.3f secs)"
 #: cinelerra//filempeg.C:203
 #, c-format
 msgid "%d audio tracks\n"
 #: cinelerra//filempeg.C:203
 #, c-format
 msgid "%d audio tracks\n"
-msgstr ""
+msgstr "%d audio tracks\n"
 
 #: cinelerra//filempeg.C:206
 #, c-format
 msgid " a%d %s"
 
 #: cinelerra//filempeg.C:206
 #, c-format
 msgid " a%d %s"
-msgstr ""
+msgstr " a%d %s"
 
 #: cinelerra//filempeg.C:209
 #, c-format
 msgid " ch%d (%d)"
 
 #: cinelerra//filempeg.C:209
 #, c-format
 msgid " ch%d (%d)"
-msgstr ""
+msgstr " ch%d (%d)"
 
 #: cinelerra//filempeg.C:214
 #, c-format
 
 #: cinelerra//filempeg.C:214
 #, c-format
@@ -3234,7 +3290,7 @@ msgstr "%jd samples"
 #: cinelerra//filempeg.C:223
 #, c-format
 msgid "%d subtitles\n"
 #: cinelerra//filempeg.C:223
 #, c-format
 msgid "%d subtitles\n"
-msgstr ""
+msgstr "%d subtitles\n"
 
 #: cinelerra//filempeg.C:227
 #, c-format
 
 #: cinelerra//filempeg.C:227
 #, c-format
@@ -3297,12 +3353,12 @@ msgstr ""
 #: cinelerra//filempeg.C:422
 #, c-format
 msgid "Couldn't open %s: no audio or video.\n"
 #: cinelerra//filempeg.C:422
 #, c-format
 msgid "Couldn't open %s: no audio or video.\n"
-msgstr ""
+msgstr "Couldn't open %s: no audio or video.\n"
 
 #: cinelerra//filempeg.C:477
 #, c-format
 msgid "Couldn't open %s: failed.\n"
 
 #: cinelerra//filempeg.C:477
 #, c-format
 msgid "Couldn't open %s: failed.\n"
-msgstr ""
+msgstr "Couldn't open %s: failed.\n"
 
 #: cinelerra//filempeg.C:598
 #, c-format
 
 #: cinelerra//filempeg.C:598
 #, c-format
@@ -3340,7 +3396,7 @@ msgstr "cant start toc/idx for file: %s\n"
 
 #: cinelerra//filempeg.C:818
 msgid "cant access commercials database"
 
 #: cinelerra//filempeg.C:818
 msgid "cant access commercials database"
-msgstr "cant access commercials database"
+msgstr "can't access commercials database"
 
 #: cinelerra//filempeg.C:833
 msgid "toc scan stopped before eof"
 
 #: cinelerra//filempeg.C:833
 msgid "toc scan stopped before eof"
@@ -3386,7 +3442,7 @@ msgstr "II"
 msgid "III"
 msgstr "III"
 
 msgid "III"
 msgstr "III"
 
-#: cinelerra//filempeg.C:1949 cinelerra//new.C:386 cinelerra//setformat.C:457
+#: cinelerra//filempeg.C:1949 cinelerra//new.C:379 cinelerra//setformat.C:457
 msgid "Color model:"
 msgstr "Цвет. модель:"
 
 msgid "Color model:"
 msgstr "Цвет. модель:"
 
@@ -3771,38 +3827,38 @@ msgstr "FileVorbis::open_file %s: invalid bitstream.\n"
 msgid "Flipbook..."
 msgstr ""
 
 msgid "Flipbook..."
 msgstr ""
 
-#: cinelerra//floatauto.C:422
+#: cinelerra//floatauto.C:424
 msgid "Smooth"
 msgstr "Сглаженная"
 
 msgid "Smooth"
 msgstr "Сглаженная"
 
-#: cinelerra//floatauto.C:423 plugins/gradient/gradient.C:347
+#: cinelerra//floatauto.C:425 plugins/gradient/gradient.C:347
 #: plugins/gradient/gradient.C:437
 #: plugins/histogram_bezier/bistogramwindow.C:1016
 #: plugins/timefront/timefront.C:369 plugins/timefront/timefront.C:511
 msgid "Linear"
 msgstr "Линейная"
 
 #: plugins/gradient/gradient.C:437
 #: plugins/histogram_bezier/bistogramwindow.C:1016
 #: plugins/timefront/timefront.C:369 plugins/timefront/timefront.C:511
 msgid "Linear"
 msgstr "Линейная"
 
-#: cinelerra//floatauto.C:424
+#: cinelerra//floatauto.C:426
 msgid "Tangent"
 msgstr "Связанные направляющие"
 
 msgid "Tangent"
 msgstr "Связанные направляющие"
 
-#: cinelerra//floatauto.C:425
+#: cinelerra//floatauto.C:427
 msgid "Disjoint"
 msgstr "Несвязанные направляющие"
 
 msgid "Disjoint"
 msgstr "Несвязанные направляющие"
 
-#: cinelerra//floatauto.C:427
+#: cinelerra//floatauto.C:429
 msgid "Error"
 msgstr "Ошибка"
 
 msgid "Error"
 msgstr "Ошибка"
 
-#: cinelerra//formatcheck.C:52
+#: cinelerra//formatcheck.C:48
 msgid "The format you selected doesn't support video."
 msgstr "Выбранный формат не поддерживает видео."
 
 msgid "The format you selected doesn't support video."
 msgstr "Выбранный формат не поддерживает видео."
 
-#: cinelerra//formatcheck.C:63
+#: cinelerra//formatcheck.C:59
 msgid "The format you selected doesn't support audio."
 msgstr "Выбранный формат не поддерживает звук."
 
 msgid "The format you selected doesn't support audio."
 msgstr "Выбранный формат не поддерживает звук."
 
-#: cinelerra//formatcheck.C:72
+#: cinelerra//formatcheck.C:68
 msgid ""
 "ULAW compression is only available in\n"
 "Quicktime Movies and PCM files."
 msgid ""
 "ULAW compression is only available in\n"
 "Quicktime Movies and PCM files."
@@ -3811,7 +3867,7 @@ msgstr "Сжатие ULAW доступно только для\n"
 
 #: cinelerra//formatpopup.C:38
 msgid "Change file format"
 
 #: cinelerra//formatpopup.C:38
 msgid "Change file format"
-msgstr "Ð\98зменениÑ\82Ñ\8c Ñ\84оÑ\80маÑ\82 Ñ\84айла"
+msgstr "Изменить формат файла"
 
 #: cinelerra//formatpopup.C:103
 msgid "Set ffmpeg file type"
 
 #: cinelerra//formatpopup.C:103
 msgid "Set ffmpeg file type"
@@ -3825,39 +3881,39 @@ msgstr "Польз. установки"
 msgid "Presets:"
 msgstr "Предустановки:"
 
 msgid "Presets:"
 msgstr "Предустановки:"
 
-#: cinelerra//formattools.C:205 cinelerra//recordprefs.C:66
+#: cinelerra//formattools.C:185 cinelerra//recordprefs.C:66
 msgid "File Format:"
 msgstr "Формат файла:"
 
 msgid "File Format:"
 msgstr "Формат файла:"
 
-#: cinelerra//formattools.C:641
+#: cinelerra//formattools.C:621
 msgid "Configure audio compression"
 msgstr "Настройки сжатия аудио"
 
 msgid "Configure audio compression"
 msgstr "Настройки сжатия аудио"
 
-#: cinelerra//formattools.C:662
+#: cinelerra//formattools.C:642
 msgid "Configure video compression"
 msgstr "Настройки сжатия видео"
 
 msgid "Configure video compression"
 msgstr "Настройки сжатия видео"
 
-#: cinelerra//formattools.C:769
+#: cinelerra//formattools.C:745
 msgid "Record audio tracks"
 msgstr "Запись аудиодорожек"
 
 msgid "Record audio tracks"
 msgstr "Запись аудиодорожек"
 
-#: cinelerra//formattools.C:769
+#: cinelerra//formattools.C:745
 msgid "Render audio tracks"
 msgstr "Рендеринг аудиодорожек"
 
 msgid "Render audio tracks"
 msgstr "Рендеринг аудиодорожек"
 
-#: cinelerra//formattools.C:786
+#: cinelerra//formattools.C:762
 msgid "Record video tracks"
 msgstr "Запись видеодорожек"
 
 msgid "Record video tracks"
 msgstr "Запись видеодорожек"
 
-#: cinelerra//formattools.C:786
+#: cinelerra//formattools.C:762
 msgid "Render video tracks"
 msgstr "Рендеринг видеодорожек"
 
 msgid "Render video tracks"
 msgstr "Рендеринг видеодорожек"
 
-#: cinelerra//formattools.C:883
+#: cinelerra//formattools.C:859
 msgid "Overwrite project with output"
 msgstr "Перезапись проекта результатами вывода"
 
 msgid "Overwrite project with output"
 msgstr "Перезапись проекта результатами вывода"
 
-#: cinelerra//formattools.C:903
+#: cinelerra//formattools.C:879
 msgid "Create new file at each label"
 msgstr "Создавать отдельный файл на каждую метку"
 
 msgid "Create new file at each label"
 msgstr "Создавать отдельный файл на каждую метку"
 
@@ -4008,124 +4064,132 @@ msgstr "Флаги"
 msgid "Frames per foot:"
 msgstr "Кадров на фут"
 
 msgid "Frames per foot:"
 msgstr "Кадров на фут"
 
-#: cinelerra//interfaceprefs.C:153
+#: cinelerra//interfaceprefs.C:162
 msgid "Index files"
 msgstr "Индексные файлы"
 
 msgid "Index files"
 msgstr "Индексные файлы"
 
-#: cinelerra//interfaceprefs.C:158
+#: cinelerra//interfaceprefs.C:167
 msgid "Index files go here:"
 msgstr "Расположение индекс. файлов:"
 
 msgid "Index files go here:"
 msgstr "Расположение индекс. файлов:"
 
-#: cinelerra//interfaceprefs.C:165
+#: cinelerra//interfaceprefs.C:174
 msgid "Index Path"
 msgstr "Путь к индексным файлам"
 
 msgid "Index Path"
 msgstr "Путь к индексным файлам"
 
-#: cinelerra//interfaceprefs.C:166
+#: cinelerra//interfaceprefs.C:175
 msgid "Select the directory for index files"
 msgstr "Выберите каталог для индексных файлов"
 
 msgid "Select the directory for index files"
 msgstr "Выберите каталог для индексных файлов"
 
-#: cinelerra//interfaceprefs.C:171
+#: cinelerra//interfaceprefs.C:180
 msgid "Size of index file:"
 msgstr "Размер индексного файла:"
 
 msgid "Size of index file:"
 msgstr "Размер индексного файла:"
 
-#: cinelerra//interfaceprefs.C:178
+#: cinelerra//interfaceprefs.C:187
 msgid "Number of index files to keep:"
 msgstr "Сохранять индексных файлов:"
 
 msgid "Number of index files to keep:"
 msgstr "Сохранять индексных файлов:"
 
-#: cinelerra//interfaceprefs.C:191
+#: cinelerra//interfaceprefs.C:200
 msgid "Editing"
 msgstr "Редактирование"
 
 msgid "Editing"
 msgstr "Редактирование"
 
-#: cinelerra//interfaceprefs.C:195
+#: cinelerra//interfaceprefs.C:204
 msgid "Keyframe reticle:"
 msgstr "Визирные линии\n"
 "  ключев. кадров:"
 
 msgid "Keyframe reticle:"
 msgstr "Визирные линии\n"
 "  ключев. кадров:"
 
-#: cinelerra//interfaceprefs.C:211
+#: cinelerra//interfaceprefs.C:220
 msgid "PIN:"
 msgstr "PIN"
 
 msgid "PIN:"
 msgstr "PIN"
 
-#: cinelerra//interfaceprefs.C:234
+#: cinelerra//interfaceprefs.C:243
 msgid "Clicking on edit boundaries does what:"
 msgstr "Поведение кнопок мыши на границах редактиров-я:"
 
 msgid "Clicking on edit boundaries does what:"
 msgstr "Поведение кнопок мыши на границах редактиров-я:"
 
-#: cinelerra//interfaceprefs.C:236
+#: cinelerra//interfaceprefs.C:245
 msgid "Button 1:"
 msgstr "Левая:"
 
 msgid "Button 1:"
 msgstr "Левая:"
 
-#: cinelerra//interfaceprefs.C:245
+#: cinelerra//interfaceprefs.C:254
 msgid "Button 2:"
 msgstr "Средняя:"
 
 msgid "Button 2:"
 msgstr "Средняя:"
 
-#: cinelerra//interfaceprefs.C:253
+#: cinelerra//interfaceprefs.C:262
 msgid "Button 3:"
 msgstr "Правая:"
 
 msgid "Button 3:"
 msgstr "Правая:"
 
-#: cinelerra//interfaceprefs.C:263
+#: cinelerra//interfaceprefs.C:272
 msgid "Min DB for meter:"
 msgstr "Мин. шкалы дБ:"
 
 msgid "Min DB for meter:"
 msgstr "Мин. шкалы дБ:"
 
-#: cinelerra//interfaceprefs.C:269
+#: cinelerra//interfaceprefs.C:278
 msgid "Max DB:"
 msgstr "Макс. дБ:"
 
 msgid "Max DB:"
 msgstr "Макс. дБ:"
 
-#: cinelerra//interfaceprefs.C:277
+#: cinelerra//interfaceprefs.C:286
 msgid "Theme:"
 msgstr "Тема:"
 
 msgid "Theme:"
 msgstr "Тема:"
 
-#: cinelerra//interfaceprefs.C:663
+#: cinelerra//interfaceprefs.C:672
 msgid "Use thumbnails in resource window"
 msgstr "Показывать миниатюры в окне 'Ресурсы'"
 
 msgid "Use thumbnails in resource window"
 msgstr "Показывать миниатюры в окне 'Ресурсы'"
 
-#: cinelerra//interfaceprefs.C:680
+#: cinelerra//interfaceprefs.C:689
 msgid "Show tip of the day"
 msgstr "Показывать совет дня"
 
 msgid "Show tip of the day"
 msgstr "Показывать совет дня"
 
-#: cinelerra//interfaceprefs.C:693
+#: cinelerra//interfaceprefs.C:702
 msgid "ffmpeg probe warns rebuild indexes"
 msgstr "Предупреждение при смене приоритета FFmpeg"
 
 msgid "ffmpeg probe warns rebuild indexes"
 msgstr "Предупреждение при смене приоритета FFmpeg"
 
-#: cinelerra//interfaceprefs.C:706
+#: cinelerra//interfaceprefs.C:715
 msgid "EDL version warns if mismatched"
 msgid "EDL version warns if mismatched"
-msgstr ""
+msgstr "Предупреждать о несоответствии версии EDL"
 
 
-#: cinelerra//interfaceprefs.C:719
+#: cinelerra//interfaceprefs.C:728
 msgid "Create Bluray warns if not root"
 msgstr ""
 
 msgid "Create Bluray warns if not root"
 msgstr ""
 
-#: cinelerra//interfaceprefs.C:732
+#: cinelerra//interfaceprefs.C:741
 msgid "Popups activate on button up"
 msgstr "Вход в контекст. меню, отпустив правую к. мыши"
 
 msgid "Popups activate on button up"
 msgstr "Вход в контекст. меню, отпустив правую к. мыши"
 
-#: cinelerra//interfaceprefs.C:748
+#: cinelerra//interfaceprefs.C:754
+msgid "Click to activate text focus"
+msgstr "Активировать текст. поле щелчком мыши"
+
+#: cinelerra//interfaceprefs.C:770
+msgid "Click to deactivate text focus"
+msgstr "Деактивировать текст. поле щелчком мыши"
+
+#: cinelerra//interfaceprefs.C:790
 msgid "Scan for commercials during toc build"
 msgstr "Сканировать на рекламу при создании TOC"
 
 msgid "Scan for commercials during toc build"
 msgstr "Сканировать на рекламу при создании TOC"
 
-#: cinelerra//interfaceprefs.C:762
+#: cinelerra//interfaceprefs.C:804
 msgid "Android Remote Control"
 msgstr "Удалённое управление с Android"
 
 msgid "Android Remote Control"
 msgstr "Удалённое управление с Android"
 
-#: cinelerra//interfaceprefs.C:813
+#: cinelerra//interfaceprefs.C:855
 msgid "Shell Commands"
 msgid "Shell Commands"
-msgstr "Shell - команды"
+msgstr "Команды Shell"
 
 
-#: cinelerra//interfaceprefs.C:817
+#: cinelerra//interfaceprefs.C:859
 msgid "Main Menu Shell Commands"
 msgid "Main Menu Shell Commands"
-msgstr "Главное меню shell - команд"
+msgstr "Главное меню команд Shell"
 
 
-#: cinelerra//interfaceprefs.C:827
+#: cinelerra//interfaceprefs.C:869
 msgid "Import images with a duration of"
 msgid "Import images with a duration of"
-msgstr "Длительность импортир-нных изображ-й"
+msgstr "Длительность импортированных изображений"
 
 
-#: cinelerra//interfaceprefs.C:882
+#: cinelerra//interfaceprefs.C:924
 msgid "Never"
 msgstr "Не показывать"
 
 msgid "Never"
 msgstr "Не показывать"
 
-#: cinelerra//interfaceprefs.C:883
+#: cinelerra//interfaceprefs.C:925
 msgid "Dragging"
 msgstr "При перетаскивании кл. к."
 
 msgid "Dragging"
 msgstr "При перетаскивании кл. к."
 
-#: cinelerra//interfaceprefs.C:884
+#: cinelerra//interfaceprefs.C:926
 msgid "Always"
 msgstr "Всегда показывать"
 
 msgid "Always"
 msgstr "Всегда показывать"
 
@@ -4153,12 +4217,11 @@ msgstr "Нижн. поле первое"
 msgid "Not Interlaced"
 msgstr "Без чередования"
 
 msgid "Not Interlaced"
 msgstr "Без чередования"
 
-#: cinelerra//interlacemodes.h:52
-#: plugins/deinterlace-cv/deinterwindow-cv.C:273
-#: plugins/motion/motionwindow.C:758 plugins/motion2point/motionwindow.C:772
-#: plugins/motion2point/motionwindow.C:793
-#: plugins/motion-cv/motionwindow-cv.C:621
-#: plugins/motion-hv/motionwindow-hv.C:955
+#: cinelerra//interlacemodes.h:52 plugins/deinterlace-cv/deinterwindow-cv.C:273
+#: plugins/motion/motionwindow.C:760 plugins/motion2point/motionwindow.C:773
+#: plugins/motion2point/motionwindow.C:794
+#: plugins/motion-cv/motionwindow-cv.C:622
+#: plugins/motion-hv/motionwindow-hv.C:956
 msgid "Do Nothing"
 msgstr "Ничего не делать"
 
 msgid "Do Nothing"
 msgstr "Ничего не делать"
 
@@ -4261,7 +4324,7 @@ msgstr "Несвязанные направляющие"
 
 #: cinelerra//keyframepopup.C:476
 msgid "misconfigured"
 
 #: cinelerra//keyframepopup.C:476
 msgid "misconfigured"
-msgstr ""
+msgstr "недопустимая конфигурация"
 
 #: cinelerra//keyframepopup.C:491 cinelerra//keyframepopup.C:497
 msgid "change keyframe curve mode"
 
 #: cinelerra//keyframepopup.C:491 cinelerra//keyframepopup.C:497
 msgid "change keyframe curve mode"
@@ -4306,15 +4369,15 @@ msgstr "Открыть файлы ..."
 
 #: cinelerra//loadfile.C:174
 msgid ": Load"
 
 #: cinelerra//loadfile.C:174
 msgid ": Load"
-msgstr ": Загрузка"
+msgstr ": Загрузка файлов"
 
 #: cinelerra//loadfile.C:175
 msgid "Select files to load:"
 
 #: cinelerra//loadfile.C:175
 msgid "Select files to load:"
-msgstr "Ð\92Ñ\8bбоÑ\80 Ñ\84айлов для загрузки:"
+msgstr "Ð\92Ñ\8bбеÑ\80иÑ\82е Ñ\84айлÑ\8b для загрузки:"
 
 #: cinelerra//loadfile.C:239
 msgid ": Locate file"
 
 #: cinelerra//loadfile.C:239
 msgid ": Locate file"
-msgstr ": Открыть файл"
+msgstr ": Обнаружить файл"
 
 #: cinelerra//loadfile.C:298
 msgid "Load backup"
 
 #: cinelerra//loadfile.C:298
 msgid "Load backup"
@@ -4401,7 +4464,7 @@ msgstr "-d = Запуск в фоновом режиме как клиента 
 #: cinelerra//main.C:290
 #, c-format
 msgid "-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
 #: cinelerra//main.C:290
 #, c-format
 msgid "-f = Run in the foreground as renderfarm client.  Substitute for -d.\n"
-msgstr "-f = Запуск в приоритетном режиме как клиента распределённого рендеринга.\n"
+msgstr "-f = Запуск в режиме переднего плана как клиента распределённого рендеринга.\n"
 "Альтернатива для -d.\n"
 
 #: cinelerra//main.C:291
 "Альтернатива для -d.\n"
 
 #: cinelerra//main.C:291
@@ -4452,11 +4515,11 @@ msgstr "Правка"
 msgid "Keyframes"
 msgstr "Ключевые кадры"
 
 msgid "Keyframes"
 msgstr "Ключевые кадры"
 
-#: cinelerra//mainmenu.C:178 cinelerra//new.C:277 cinelerra//setformat.C:336
+#: cinelerra//mainmenu.C:178 cinelerra//new.C:269 cinelerra//setformat.C:336
 msgid "Audio"
 msgstr "Аудио"
 
 msgid "Audio"
 msgstr "Аудио"
 
-#: cinelerra//mainmenu.C:187 cinelerra//new.C:305 cinelerra//setformat.C:388
+#: cinelerra//mainmenu.C:187 cinelerra//new.C:297 cinelerra//setformat.C:388
 msgid "Video"
 msgstr "Видео"
 
 msgid "Video"
 msgstr "Видео"
 
@@ -4614,8 +4677,8 @@ msgstr "Вырезать"
 msgid "Copy"
 msgstr "Копировать"
 
 msgid "Copy"
 msgstr "Копировать"
 
-#: cinelerra//mainmenu.C:882 cinelerra//recordbatches.C:566
-#: cinelerra//swindow.C:571 plugins/compressor/compressor.C:1394
+#: cinelerra//mainmenu.C:882 cinelerra//recordbatches.C:544
+#: cinelerra//swindow.C:559 plugins/compressor/compressor.C:1394
 #: plugins/piano/piano.C:912 plugins/synthesizer/synthesizer.C:1466
 msgid "Clear"
 msgstr "Удалить"
 #: plugins/piano/piano.C:912 plugins/synthesizer/synthesizer.C:1466
 msgid "Clear"
 msgstr "Удалить"
@@ -4724,7 +4787,7 @@ msgstr "Добавить дорожку для субтитров"
 msgid "Shift-Y"
 msgstr "Shift-Y"
 
 msgid "Shift-Y"
 msgstr "Shift-Y"
 
-#: cinelerra//mainmenu.C:1228 cinelerra//swindow.C:469
+#: cinelerra//mainmenu.C:1228 cinelerra//swindow.C:457
 msgid "paste subttl"
 msgstr "Вставить субтитры"
 
 msgid "paste subttl"
 msgstr "Вставить субтитры"
 
@@ -4890,7 +4953,7 @@ msgstr "Не выбран эффект."
 msgid "No selected range to process."
 msgstr "Не выбрана область для обработки."
 
 msgid "No selected range to process."
 msgstr "Не выбрана область для обработки."
 
-#: cinelerra//menueffects.C:324 cinelerra//mwindowgui.C:608
+#: cinelerra//menueffects.C:324 cinelerra//mwindowgui.C:609
 #: cinelerra//vwindowgui.C:101
 #, c-format
 msgid ": %s"
 #: cinelerra//vwindowgui.C:101
 #, c-format
 msgid ": %s"
@@ -4910,11 +4973,11 @@ msgstr ": Рендеринг эффекта"
 msgid "Select an effect"
 msgstr "Выберите эффект"
 
 msgid "Select an effect"
 msgstr "Выберите эффект"
 
-#: cinelerra//menueffects.C:646 cinelerra//render.C:1151
+#: cinelerra//menueffects.C:646 cinelerra//render.C:1146
 msgid "Select the first file to render to:"
 msgstr "Выберите первый файл для рендеринга:"
 
 msgid "Select the first file to render to:"
 msgstr "Выберите первый файл для рендеринга:"
 
-#: cinelerra//menueffects.C:647 cinelerra//render.C:1152
+#: cinelerra//menueffects.C:647 cinelerra//render.C:1147
 msgid "Select a file to render to:"
 msgstr "Введите имя для результирующего файла:"
 
 msgid "Select a file to render to:"
 msgstr "Введите имя для результирующего файла:"
 
@@ -4950,67 +5013,67 @@ msgid "Show meters"
 msgstr "Показывать измерители\n"
 "уровня звука"
 
 msgstr "Показывать измерители\n"
 "уровня звука"
 
-#: cinelerra//mwindow.C:577
+#: cinelerra//mwindow.C:604
 #, c-format
 msgid "MWindow::init_plugins: can't create plugin index: %s\n"
 msgstr "MWindow::init_plugins: can't create plugin index: %s\n"
 
 #, c-format
 msgid "MWindow::init_plugins: can't create plugin index: %s\n"
 msgstr "MWindow::init_plugins: can't create plugin index: %s\n"
 
-#: cinelerra//mwindow.C:638
+#: cinelerra//mwindow.C:666
 #, c-format
 msgid "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 msgstr "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 
 #, c-format
 msgid "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 msgstr "MWindow::init_ladspa_index: can't create plugin index: %s\n"
 
-#: cinelerra//mwindow.C:923
+#: cinelerra//mwindow.C:952
 #, c-format
 msgid "MWindow::init_theme: prefered theme %s not found.\n"
 msgstr "MWindow::init_theme: prefered theme %s not found.\n"
 
 #, c-format
 msgid "MWindow::init_theme: prefered theme %s not found.\n"
 msgstr "MWindow::init_theme: prefered theme %s not found.\n"
 
-#: cinelerra//mwindow.C:927
+#: cinelerra//mwindow.C:956
 #, c-format
 msgid "MWindow::init_theme: trying default theme %s\n"
 msgstr "MWindow::init_theme: trying default theme %s\n"
 
 #, c-format
 msgid "MWindow::init_theme: trying default theme %s\n"
 msgstr "MWindow::init_theme: trying default theme %s\n"
 
-#: cinelerra//mwindow.C:937
+#: cinelerra//mwindow.C:966
 #, c-format
 msgid "MWindow::init_theme: theme_plugin not found.\n"
 msgstr "MWindow::init_theme: theme_plugin not found.\n"
 
 #, c-format
 msgid "MWindow::init_theme: theme_plugin not found.\n"
 msgstr "MWindow::init_theme: theme_plugin not found.\n"
 
-#: cinelerra//mwindow.C:943
+#: cinelerra//mwindow.C:972
 #, c-format
 msgid "MWindow::init_theme: unable to load theme %s\n"
 msgstr "MWindow::init_theme: unable to load theme %s\n"
 
 #, c-format
 msgid "MWindow::init_theme: unable to load theme %s\n"
 msgstr "MWindow::init_theme: unable to load theme %s\n"
 
-#: cinelerra//mwindow.C:1233
+#: cinelerra//mwindow.C:1262
 msgid "multiple video tracks"
 msgstr ""
 
 msgid "multiple video tracks"
 msgstr ""
 
-#: cinelerra//mwindow.C:1245
+#: cinelerra//mwindow.C:1274
 msgid "crosses edits"
 msgstr ""
 
 msgid "crosses edits"
 msgstr ""
 
-#: cinelerra//mwindow.C:1247
+#: cinelerra//mwindow.C:1276
 msgid "not asset"
 msgstr ""
 
 msgid "not asset"
 msgstr ""
 
-#: cinelerra//mwindow.C:1266
+#: cinelerra//mwindow.C:1295
 msgid "no file"
 msgstr ""
 
 msgid "no file"
 msgstr ""
 
-#: cinelerra//mwindow.C:1272
+#: cinelerra//mwindow.C:1301
 msgid "db failed"
 msgstr ""
 
 msgid "db failed"
 msgstr ""
 
-#: cinelerra//mwindow.C:1276
+#: cinelerra//mwindow.C:1305
 #, c-format
 msgid "put_commercial: %s"
 msgstr ""
 
 #, c-format
 msgid "put_commercial: %s"
 msgstr ""
 
-#: cinelerra//mwindow.C:1341
+#: cinelerra//mwindow.C:1370
 #, c-format
 msgid "Loading %s"
 msgstr "Загрузка %s"
 
 #, c-format
 msgid "Loading %s"
 msgstr "Загрузка %s"
 
-#: cinelerra//mwindow.C:1359
+#: cinelerra//mwindow.C:1388
 #, c-format
 msgid ""
 "%s's resolution is %dx%d.\n"
 #, c-format
 msgid ""
 "%s's resolution is %dx%d.\n"
@@ -5018,7 +5081,7 @@ msgid ""
 msgstr "Изображение %s имеет размер %dx%d (в пикселях).\n"
 "Изображения с нечётными размерами не могут быть декодированы должным образом."
 
 msgstr "Изображение %s имеет размер %dx%d (в пикселях).\n"
 "Изображения с нечётными размерами не могут быть декодированы должным образом."
 
-#: cinelerra//mwindow.C:1370
+#: cinelerra//mwindow.C:1399
 #, c-format
 msgid ""
 "%s's index was built for program number %d\n"
 #, c-format
 msgid ""
 "%s's index was built for program number %d\n"
@@ -5026,16 +5089,16 @@ msgid ""
 "  Using program %d."
 msgstr ""
 
 "  Using program %d."
 msgstr ""
 
-#: cinelerra//mwindow.C:1416
+#: cinelerra//mwindow.C:1445
 #, c-format
 msgid "Failed to open %s"
 msgstr "Ошибка открытия %s"
 
 #, c-format
 msgid "Failed to open %s"
 msgstr "Ошибка открытия %s"
 
-#: cinelerra//mwindow.C:1449
+#: cinelerra//mwindow.C:1478
 msgid "'s format couldn't be determined."
 msgstr " - не удалось определить формат."
 
 msgid "'s format couldn't be determined."
 msgstr " - не удалось определить формат."
 
-#: cinelerra//mwindow.C:1519
+#: cinelerra//mwindow.C:1548
 #, c-format
 msgid ""
 "XML file %s\n"
 #, c-format
 msgid ""
 "XML file %s\n"
@@ -5043,12 +5106,12 @@ msgid ""
 msgstr "XML-файл %s\n"
 " создан не в cinelerra."
 
 msgstr "XML-файл %s\n"
 " создан не в cinelerra."
 
-#: cinelerra//mwindow.C:1521
+#: cinelerra//mwindow.C:1550
 #, c-format
 msgid "Unknown %s"
 msgstr "Неизвестно %s"
 
 #, c-format
 msgid "Unknown %s"
 msgstr "Неизвестно %s"
 
-#: cinelerra//mwindow.C:1529
+#: cinelerra//mwindow.C:1558
 #, c-format
 msgid ""
 "Warning: XML from cinelerra version %s\n"
 #, c-format
 msgid ""
 "Warning: XML from cinelerra version %s\n"
@@ -5056,18 +5119,18 @@ msgid ""
 msgstr "Предупреждение:  XML-файл был создан в cinelerra версии %s.\n"
 "Сессионные данные могут быть несовместимы."
 
 msgstr "Предупреждение:  XML-файл был создан в cinelerra версии %s.\n"
 "Сессионные данные могут быть несовместимы."
 
-#: cinelerra//mwindow.C:1722
+#: cinelerra//mwindow.C:1751
 msgid "load"
 msgstr "загрузка"
 
 msgid "load"
 msgstr "загрузка"
 
-#: cinelerra//mwindow.C:1799 cinelerra//mwindow.C:1832
+#: cinelerra//mwindow.C:1828 cinelerra//mwindow.C:1861
 #, 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 ""
 
 #, 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:1865
+#: cinelerra//mwindow.C:1894
 #, c-format
 msgid ""
 "MWindow::init_shm: /proc/sys/kernel/shmmax is %p.\n"
 #, c-format
 msgid ""
 "MWindow::init_shm: /proc/sys/kernel/shmmax is %p.\n"
@@ -5081,41 +5144,41 @@ msgstr "MWindow::init_shm: /proc/sys/kernel/shmmax is %p.\n"
 "прежде чем запустить Сinelerra.\n"
 "Для Cinelerra значение должно быть не менее 0x7fffffff\n"
 
 "прежде чем запустить Сinelerra.\n"
 "Для Cinelerra значение должно быть не менее 0x7fffffff\n"
 
-#: cinelerra//mwindow.C:1895
+#: cinelerra//mwindow.C:1925
 msgid "Initializing Plugins"
 msgstr "Инициализация плагинов"
 
 msgid "Initializing Plugins"
 msgstr "Инициализация плагинов"
 
-#: cinelerra//mwindow.C:1901
+#: cinelerra//mwindow.C:1931
 msgid "Initializing GUI"
 msgstr "Инициализация GUI"
 
 msgid "Initializing GUI"
 msgstr "Инициализация GUI"
 
-#: cinelerra//mwindow.C:1909
+#: cinelerra//mwindow.C:1939
 msgid "Initializing Fonts"
 msgstr "Инициализация шрифтов"
 
 msgid "Initializing Fonts"
 msgstr "Инициализация шрифтов"
 
-#: cinelerra//mwindow.C:2958
+#: cinelerra//mwindow.C:2988
 #, c-format
 msgid "Couldn't open %s for writing."
 msgstr "Couldn't open %s for writing."
 
 #, c-format
 msgid "Couldn't open %s for writing."
 msgstr "Couldn't open %s for writing."
 
-#: cinelerra//mwindow.C:3119
+#: cinelerra//mwindow.C:3149
 msgid "remove assets"
 msgstr "удалить ресурсы"
 
 msgid "remove assets"
 msgstr "удалить ресурсы"
 
-#: cinelerra//mwindow.C:3351
+#: cinelerra//mwindow.C:3381
 #, c-format
 msgid "Using %s"
 msgstr "Использование %s"
 
 #, c-format
 msgid "Using %s"
 msgstr "Использование %s"
 
-#: cinelerra//mwindow.C:3488 cinelerra//mwindowedit.C:234
-#: cinelerra//mwindowedit.C:300 cinelerra//preferencesthread.C:247
+#: cinelerra//mwindow.C:3518 cinelerra//mwindowedit.C:234
+#: cinelerra//mwindowedit.C:300 cinelerra//preferencesthread.C:248
 msgid ""
 "This project's dimensions are not multiples of 4 so\n"
 "it can't be rendered by OpenGL."
 msgstr "Размер проекта не кратен 4.\n"
 "Невозможно выполнить OpenGL-рендеринг."
 
 msgid ""
 "This project's dimensions are not multiples of 4 so\n"
 "it can't be rendered by OpenGL."
 msgstr "Размер проекта не кратен 4.\n"
 "Невозможно выполнить OpenGL-рендеринг."
 
-#: cinelerra//mwindow.C:3621
+#: cinelerra//mwindow.C:3651
 msgid "select asset"
 msgstr "выберите ресурс"
 
 msgid "select asset"
 msgstr "выберите ресурс"
 
@@ -5308,7 +5371,7 @@ msgstr "кон. точка"
 
 #: cinelerra//mwindowedit.C:2344
 msgid "splice"
 
 #: cinelerra//mwindowedit.C:2344
 msgid "splice"
-msgstr "раздвинуть"
+msgstr "разрезать и вставить"
 
 #: cinelerra//mwindowedit.C:2380 cinelerra//vwindowgui.C:701
 #, c-format
 
 #: cinelerra//mwindowedit.C:2380 cinelerra//vwindowgui.C:701
 #, c-format
@@ -5351,19 +5414,19 @@ msgstr "вырезать рекламу"
 msgid ": Program"
 msgstr ": Программа"
 
 msgid ": Program"
 msgstr ": Программа"
 
-#: cinelerra//mwindowgui.C:2279 cinelerra//mwindowgui.C:2290
-#: cinelerra//preferencesthread.C:233
+#: cinelerra//mwindowgui.C:2280 cinelerra//mwindowgui.C:2291
+#: cinelerra//preferencesthread.C:234
 msgid "Try FFMpeg first"
 msgstr "Включён приоритет FFmpeg\n"
 "при сборе инфо. об открываемом файле"
 
 msgid "Try FFMpeg first"
 msgstr "Включён приоритет FFmpeg\n"
 "при сборе инфо. об открываемом файле"
 
-#: cinelerra//mwindowgui.C:2279 cinelerra//mwindowgui.C:2290
-#: cinelerra//preferencesthread.C:233
+#: cinelerra//mwindowgui.C:2280 cinelerra//mwindowgui.C:2291
+#: cinelerra//preferencesthread.C:234
 msgid "Try FFMpeg last"
 msgstr "Выключен приоритет FFmpeg\n"
 "при сборе инфо. об открываемом файле"
 
 msgid "Try FFMpeg last"
 msgstr "Выключен приоритет FFmpeg\n"
 "при сборе инфо. об открываемом файле"
 
-#: cinelerra//mwindowgui.C:2292
+#: cinelerra//mwindowgui.C:2293
 msgid "Changing the base codecs may require rebuilding indexes."
 msgstr "Для изменения базы кодеков может потребоваться переиндексация"
 
 msgid "Changing the base codecs may require rebuilding indexes."
 msgstr "Для изменения базы кодеков может потребоваться переиндексация"
 
@@ -5521,7 +5584,7 @@ msgstr "Cinelerra: Уровни"
 
 #: cinelerra//mwindow.inc:90
 msgid "Cinelerra: Load"
 
 #: cinelerra//mwindow.inc:90
 msgid "Cinelerra: Load"
-msgstr "Cinelerra: Загрузка"
+msgstr "Cinelerra: Загрузка файлов"
 
 #: cinelerra//mwindow.inc:91
 msgid "Cinelerra: Loading"
 
 #: cinelerra//mwindow.inc:91
 msgid "Cinelerra: Loading"
@@ -5529,7 +5592,7 @@ msgstr "Cinelerra: Загрузка"
 
 #: cinelerra//mwindow.inc:92
 msgid "Cinelerra: Locate file"
 
 #: cinelerra//mwindow.inc:92
 msgid "Cinelerra: Locate file"
-msgstr "Cinelerra: Открыть файл"
+msgstr "Cinelerra: Обнаружить файл"
 
 #: cinelerra//mwindow.inc:93
 msgid "Cinelerra: Mask"
 
 #: cinelerra//mwindow.inc:93
 msgid "Cinelerra: Mask"
@@ -5728,11 +5791,11 @@ msgstr "Cinelerra: Просмотр"
 msgid "Cinelerra: Warning"
 msgstr "Cinelerra: Предупреждение"
 
 msgid "Cinelerra: Warning"
 msgstr "Cinelerra: Предупреждение"
 
-#: cinelerra//new.C:57
+#: cinelerra//new.C:56
 msgid "New Project..."
 msgstr "Новый проект..."
 
 msgid "New Project..."
 msgstr "Новый проект..."
 
-#: cinelerra//new.C:139
+#: cinelerra//new.C:138
 msgid "New Project"
 msgstr "Новый проект"
 
 msgid "New Project"
 msgstr "Новый проект"
 
@@ -5740,40 +5803,40 @@ msgstr "Новый проект"
 msgid ": New Project"
 msgstr ": Новый проект"
 
 msgid ": New Project"
 msgstr ": Новый проект"
 
-#: cinelerra//new.C:262
+#: cinelerra//new.C:254
 msgid "Parameters for the new project:"
 msgstr "Параметры для нового проекта:"
 
 msgid "Parameters for the new project:"
 msgstr "Параметры для нового проекта:"
 
-#: cinelerra//new.C:281 cinelerra//new.C:308
+#: cinelerra//new.C:273 cinelerra//new.C:300
 msgid "Tracks:"
 msgstr "Дорожки:"
 
 msgid "Tracks:"
 msgstr "Дорожки:"
 
-#: cinelerra//new.C:297 cinelerra//recordgui.C:232 cinelerra//setformat.C:342
+#: cinelerra//new.C:289 cinelerra//recordgui.C:232 cinelerra//setformat.C:342
 msgid "Samplerate:"
 msgstr "Част. дискр.:"
 
 msgid "Samplerate:"
 msgstr "Част. дискр.:"
 
-#: cinelerra//new.C:323 cinelerra//recordgui.C:245
+#: cinelerra//new.C:315 cinelerra//recordgui.C:245
 msgid "Framerate:"
 msgstr "Част. кадров:"
 
 msgid "Framerate:"
 msgstr "Част. кадров:"
 
-#: cinelerra//new.C:349 cinelerra//setformat.C:406
+#: cinelerra//new.C:341 cinelerra//setformat.C:406
 msgid "Canvas size:"
 msgstr "Размер холста   (Размер вывода):"
 
 msgid "Canvas size:"
 msgstr "Размер холста   (Размер вывода):"
 
-#: cinelerra//new.C:368 cinelerra//scale.C:270 cinelerra//setformat.C:474
+#: cinelerra//new.C:360 cinelerra//scale.C:270 cinelerra//setformat.C:474
 msgid "Aspect ratio:"
 msgstr "Пропорции:"
 
 msgid "Aspect ratio:"
 msgstr "Пропорции:"
 
-#: cinelerra//new.C:396 cinelerra//setformat.C:501
+#: cinelerra//new.C:382 cinelerra//setformat.C:501
 msgid "Interlace mode:"
 msgstr "Чересстрочн.\n"
 "режим"
 
 msgid "Interlace mode:"
 msgstr "Чересстрочн.\n"
 "режим"
 
-#: cinelerra//new.C:909
+#: cinelerra//new.C:899
 msgid "Auto aspect ratio"
 msgstr "Автоматически"
 
 msgid "Auto aspect ratio"
 msgstr "Автоматически"
 
-#: cinelerra//new.C:935 cinelerra//resizetrackthread.C:192
+#: cinelerra//new.C:925 cinelerra//resizetrackthread.C:192
 #: cinelerra//setformat.C:924 plugins/photoscale/photoscale.C:198
 msgid "Swap dimensions"
 msgstr "Поменять местами значения"
 #: cinelerra//setformat.C:924 plugins/photoscale/photoscale.C:198
 msgid "Swap dimensions"
 msgstr "Поменять местами значения"
@@ -5834,7 +5897,7 @@ msgstr "Смещение начала/конца дорожки"
 
 #: cinelerra//patchgui.C:716 cinelerra//patchgui.C:722
 msgid "nudge."
 
 #: cinelerra//patchgui.C:716 cinelerra//patchgui.C:722
 msgid "nudge."
-msgstr "cмещ-е нач./конца дорожки."
+msgstr "cмещ-е нач./конца дорожки"
 
 #: cinelerra//performanceprefs.C:83
 msgid "Cache size (MB):"
 
 #: cinelerra//performanceprefs.C:83
 msgid "Cache size (MB):"
@@ -5850,7 +5913,7 @@ msgstr "Количество CPU (SMP), используемых плагина
 
 #: cinelerra//performanceprefs.C:119 cinelerra//performanceprefs.C:124
 msgid "(must be root)"
 
 #: cinelerra//performanceprefs.C:119 cinelerra//performanceprefs.C:124
 msgid "(must be root)"
-msgstr "(Вы должны быть root)"
+msgstr "(только с правами root)"
 
 #: cinelerra//performanceprefs.C:141
 msgid "Background Rendering (Video only)"
 
 #: cinelerra//performanceprefs.C:141
 msgid "Background Rendering (Video only)"
@@ -6096,7 +6159,7 @@ msgstr "Лицензия: %s"
 msgid "%s took %s"
 msgstr "%s закончен %s"
 
 msgid "%s took %s"
 msgstr "%s закончен %s"
 
-#: cinelerra//pluginclient.C:839 cinelerra//pluginclient.C:851
+#: cinelerra//pluginclient.C:840 cinelerra//pluginclient.C:852
 msgid "tweek"
 msgstr "настройка"
 
 msgid "tweek"
 msgstr "настройка"
 
@@ -6202,39 +6265,39 @@ msgstr "Параметры программы"
 msgid "Shift-P"
 msgstr "Shift-P"
 
 msgid "Shift-P"
 msgstr "Shift-P"
 
-#: cinelerra//preferencesthread.C:333
+#: cinelerra//preferencesthread.C:334
 msgid "*Playback A"
 msgstr "*Воспроизв-ние А"
 
 msgid "*Playback A"
 msgstr "*Воспроизв-ние А"
 
-#: cinelerra//preferencesthread.C:333
+#: cinelerra//preferencesthread.C:334
 msgid "Playback A"
 msgstr "Воспроизв-ние А"
 
 msgid "Playback A"
 msgstr "Воспроизв-ние А"
 
-#: cinelerra//preferencesthread.C:336
+#: cinelerra//preferencesthread.C:337
 msgid "*Playback B"
 msgstr "*Воспр-ние В"
 
 msgid "*Playback B"
 msgstr "*Воспр-ние В"
 
-#: cinelerra//preferencesthread.C:336
+#: cinelerra//preferencesthread.C:337
 msgid "Playback B"
 msgstr "Воспр-ние В"
 
 msgid "Playback B"
 msgstr "Воспр-ние В"
 
-#: cinelerra//preferencesthread.C:338
+#: cinelerra//preferencesthread.C:339
 msgid "Recording"
 msgstr "Запись"
 
 msgid "Recording"
 msgstr "Запись"
 
-#: cinelerra//preferencesthread.C:340
+#: cinelerra//preferencesthread.C:341
 msgid "Performance"
 msgstr "Производит-ность"
 
 msgid "Performance"
 msgstr "Производит-ность"
 
-#: cinelerra//preferencesthread.C:342
+#: cinelerra//preferencesthread.C:343
 msgid "Interface"
 msgstr "Интерфейс"
 
 msgid "Interface"
 msgstr "Интерфейс"
 
-#: cinelerra//preferencesthread.C:344
+#: cinelerra//preferencesthread.C:345
 msgid "About"
 msgstr "О программе"
 
 msgid "About"
 msgstr "О программе"
 
-#: cinelerra//preferencesthread.C:375
+#: cinelerra//preferencesthread.C:376
 msgid ": Preferences"
 msgstr ": Параметры"
 
 msgid ": Preferences"
 msgstr ": Параметры"
 
@@ -6283,18 +6346,18 @@ msgstr "Инфо"
 msgid "Duration"
 msgstr "Длительность"
 
 msgid "Duration"
 msgstr "Длительность"
 
-#: cinelerra//recordbatches.C:525 cinelerra//recordgui.C:947
+#: cinelerra//recordbatches.C:503 cinelerra//recordgui.C:947
 msgid ""
 "Start batch recording\n"
 "from the current position."
 msgstr "Начать пакетную запись\n"
 "с текущей позиции."
 
 msgid ""
 "Start batch recording\n"
 "from the current position."
 msgstr "Начать пакетную запись\n"
 "с текущей позиции."
 
-#: cinelerra//recordbatches.C:552
+#: cinelerra//recordbatches.C:530
 msgid "Activate"
 msgstr "Активировать"
 
 msgid "Activate"
 msgstr "Активировать"
 
-#: cinelerra//recordbatches.C:554 cinelerra//recordgui.C:978
+#: cinelerra//recordbatches.C:532 cinelerra//recordgui.C:978
 msgid ""
 "Make the highlighted\n"
 "clip active."
 msgid ""
 "Make the highlighted\n"
 "clip active."
@@ -6322,7 +6385,7 @@ msgid "start over"
 msgstr "начать сначала"
 
 #: cinelerra//recordengine.C:695 cinelerra//recordengine.C:703
 msgstr "начать сначала"
 
 #: cinelerra//recordengine.C:695 cinelerra//recordengine.C:703
-#: plugins/titler/titlewindow.C:748
+#: plugins/titler/titlerwindow.C:907
 #, c-format
 msgid "Loop"
 msgstr "Зациклить"
 #, c-format
 msgid "Loop"
 msgstr "Зациклить"
@@ -6667,54 +6730,54 @@ msgstr "Расчётное время (ETA)"
 msgid "Already rendering"
 msgstr "Рендеринг уже идёт."
 
 msgid "Already rendering"
 msgstr "Рендеринг уже идёт."
 
-#: cinelerra//render.C:494
+#: cinelerra//render.C:491
 #, c-format
 msgid "Rendering %s..."
 msgstr "Рендеринг %s..."
 
 #, c-format
 msgid "Rendering %s..."
 msgstr "Рендеринг %s..."
 
-#: cinelerra//render.C:497
+#: cinelerra//render.C:494
 msgid "Rendering..."
 msgstr "Рендеринг..."
 
 msgid "Rendering..."
 msgstr "Рендеринг..."
 
-#: cinelerra//render.C:515
+#: cinelerra//render.C:512
 #, c-format
 msgid "Rendering took %s"
 msgstr "Рендеринг закончен %s"
 
 #, c-format
 msgid "Rendering took %s"
 msgstr "Рендеринг закончен %s"
 
-#: cinelerra//render.C:785
+#: cinelerra//render.C:782
 msgid "Starting render farm"
 msgstr "Начать распределённый рендеринг"
 
 msgid "Starting render farm"
 msgstr "Начать распределённый рендеринг"
 
-#: cinelerra//render.C:813
+#: cinelerra//render.C:810
 msgid "Failed to start render farm"
 msgstr "Не удалось запустить распределённый рендеринг"
 
 msgid "Failed to start render farm"
 msgstr "Не удалось запустить распределённый рендеринг"
 
-#: cinelerra//render.C:911
+#: cinelerra//render.C:908
 msgid "Error rendering data."
 msgstr "Ошибка данных рендеринга."
 
 msgid "Error rendering data."
 msgstr "Ошибка данных рендеринга."
 
-#: cinelerra//render.C:969
+#: cinelerra//render.C:966
 msgid "render"
 msgstr "рендеринг"
 
 msgid "render"
 msgstr "рендеринг"
 
-#: cinelerra//render.C:1111
+#: cinelerra//render.C:1108
 msgid ": Render"
 msgstr ": Рендеринг"
 
 msgid ": Render"
 msgstr ": Рендеринг"
 
-#: cinelerra//render.C:1159
+#: cinelerra//render.C:1154
 msgid "Render range:"
 msgstr "Область\n"
 "рендеринга:"
 
 msgid "Render range:"
 msgstr "Область\n"
 "рендеринга:"
 
-#: cinelerra//render.C:1196
+#: cinelerra//render.C:1191
 msgid "Project"
 msgstr "Весь проект"
 
 msgid "Project"
 msgstr "Весь проект"
 
-#: cinelerra//render.C:1207
+#: cinelerra//render.C:1202
 msgid "Selection"
 msgstr "Выделенный участок"
 
 msgid "Selection"
 msgstr "Выделенный участок"
 
-#: cinelerra//render.C:1219
+#: cinelerra//render.C:1214
 msgid "In/Out Points"
 msgstr "Нач./Кон. точки"
 
 msgid "In/Out Points"
 msgstr "Нач./Кон. точки"
 
@@ -6734,12 +6797,12 @@ msgstr "RenderFarmServerThread::start_loop: socket"
 #: cinelerra//renderfarm.C:215
 #, c-format
 msgid "RenderFarmServerThread::open_client: unknown host %s.\n"
 #: cinelerra//renderfarm.C:215
 #, c-format
 msgid "RenderFarmServerThread::open_client: unknown host %s.\n"
-msgstr "RenderFarmServerThread::open_client: неизвестный хост %s.\n"
+msgstr "RenderFarmServerThread::open_client: unknown host %s.\n"
 
 #: cinelerra//renderfarm.C:459
 #, c-format
 msgid "RenderFarmServerThread::run: unknown request %02x\n"
 
 #: cinelerra//renderfarm.C:459
 #, c-format
 msgid "RenderFarmServerThread::run: unknown request %02x\n"
-msgstr "RenderFarmServerThread::run: неизвестный запрос %02x\n"
+msgstr "RenderFarmServerThread::run: unknown request %02x\n"
 
 #: cinelerra//renderfarmclient.C:120 cinelerra//renderfarmclient.C:145
 msgid "RenderFarmClient::main_loop: socket"
 
 #: cinelerra//renderfarmclient.C:120 cinelerra//renderfarmclient.C:145
 msgid "RenderFarmClient::main_loop: socket"
@@ -6748,43 +6811,43 @@ msgstr "RenderFarmClient::main_loop: socket"
 #: cinelerra//renderfarmclient.C:129
 #, c-format
 msgid "RenderFarmClient::main_loop: bind port %d: %s"
 #: cinelerra//renderfarmclient.C:129
 #, c-format
 msgid "RenderFarmClient::main_loop: bind port %d: %s"
-msgstr "RenderFarmClient::main_loop: связанный порт %d: %s"
+msgstr "RenderFarmClient::main_loop: bind port %d: %s"
 
 #: cinelerra//renderfarmclient.C:154
 #, c-format
 msgid "RenderFarmClient::main_loop: bind path %s: %s\n"
 
 #: cinelerra//renderfarmclient.C:154
 #, c-format
 msgid "RenderFarmClient::main_loop: bind path %s: %s\n"
-msgstr "RenderFarmClient::main_loop: связанный путь %s: %s\n"
+msgstr "RenderFarmClient::main_loop: bind path %s: %s\n"
 
 #: cinelerra//renderfarmclient.C:166
 msgid "RenderFarmClient::main_loop: listen"
 
 #: cinelerra//renderfarmclient.C:166
 msgid "RenderFarmClient::main_loop: listen"
-msgstr "RenderFarmClient::main_loop: слушает"
+msgstr "RenderFarmClient::main_loop: listen"
 
 #: cinelerra//renderfarmclient.C:178 cinelerra//renderfarmclient.C:192
 msgid "RenderFarmClient::main_loop: accept"
 
 #: cinelerra//renderfarmclient.C:178 cinelerra//renderfarmclient.C:192
 msgid "RenderFarmClient::main_loop: accept"
-msgstr "RenderFarmClient::main_loop: принимает"
+msgstr "RenderFarmClient::main_loop: accept"
 
 #: cinelerra//renderfarmclient.C:680
 #, c-format
 msgid "RenderFarmClientThread::run: Session finished.\n"
 msgstr "RenderFarmClientThread::run: Сессия завершена.\n"
 
 
 #: cinelerra//renderfarmclient.C:680
 #, c-format
 msgid "RenderFarmClientThread::run: Session finished.\n"
 msgstr "RenderFarmClientThread::run: Сессия завершена.\n"
 
-#: cinelerra//renderprofiles.C:92
+#: cinelerra//renderprofiles.C:88
 msgid "RenderProfile:"
 msgstr "Профиль рендеринга:"
 
 msgid "RenderProfile:"
 msgstr "Профиль рендеринга:"
 
-#: cinelerra//renderprofiles.C:96
+#: cinelerra//renderprofiles.C:92
 msgid "Render profile:"
 msgstr "Профиль рендеринга:"
 
 msgid "Render profile:"
 msgstr "Профиль рендеринга:"
 
-#: cinelerra//renderprofiles.C:248
+#: cinelerra//renderprofiles.C:244
 msgid "Save profile"
 msgstr "Сохранить профиль"
 
 msgid "Save profile"
 msgstr "Сохранить профиль"
 
-#: cinelerra//renderprofiles.C:267
+#: cinelerra//renderprofiles.C:263
 msgid "Maximum number of render profiles reached"
 msgstr "Достигнуто максим. количество профилей"
 
 msgid "Maximum number of render profiles reached"
 msgstr "Достигнуто максим. количество профилей"
 
-#: cinelerra//renderprofiles.C:287
+#: cinelerra//renderprofiles.C:283
 msgid "Delete profile"
 msgstr "Удалить профиль"
 
 msgid "Delete profile"
 msgstr "Удалить профиль"
 
@@ -6820,7 +6883,7 @@ msgid ": Resize Track"
 msgstr ": Размер дорожки"
 
 #: cinelerra//resizetrackthread.C:124 plugins/scale/scalewin.C:63
 msgstr ": Размер дорожки"
 
 #: cinelerra//resizetrackthread.C:124 plugins/scale/scalewin.C:63
-#: plugins/titler/titlewindow.C:230
+#: plugins/titler/titlerwindow.C:236
 msgid "Size:"
 msgstr "Размер:"
 
 msgid "Size:"
 msgstr "Размер:"
 
@@ -6833,7 +6896,7 @@ msgstr "x"
 msgid "Resize"
 msgstr ""
 
 msgid "Resize"
 msgstr ""
 
-#: cinelerra//resourcepixmap.C:643
+#: cinelerra//resourcepixmap.C:641
 #, c-format
 msgid "ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
 msgstr "ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
 #, c-format
 msgid "ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
 msgstr "ResourcePixmap::draw_audio_source: failed to check out %s for drawing.\n"
@@ -6846,7 +6909,7 @@ msgstr "Сохранить резервную копию"
 msgid "Saved backup."
 msgstr "Сохранённая резервная копия."
 
 msgid "Saved backup."
 msgstr "Сохранённая резервная копия."
 
-#: cinelerra//savefile.C:70 cinelerra//swindow.C:129
+#: cinelerra//savefile.C:70 cinelerra//swindow.C:117
 msgid "Save"
 msgstr "Сохранить проект"
 
 msgid "Save"
 msgstr "Сохранить проект"
 
@@ -6981,7 +7044,7 @@ msgstr "Команды:"
 
 #: cinelerra//shbtnprefs.C:336
 msgid "shell cmds"
 
 #: cinelerra//shbtnprefs.C:336
 msgid "shell cmds"
-msgstr "командÑ\8b shell"
+msgstr "Ð\9aомандÑ\8b Shell"
 
 #: cinelerra//splashgui.C:33
 msgid ": Loading"
 
 #: cinelerra//splashgui.C:33
 msgid ": Loading"
@@ -7004,43 +7067,43 @@ msgstr "Прервать операцию"
 msgid "Subttl %d"
 msgstr "Субтитры %d"
 
 msgid "Subttl %d"
 msgstr "Субтитры %d"
 
-#: cinelerra//swindow.C:106
+#: cinelerra//swindow.C:94
 msgid "Load"
 msgstr "Загрузка"
 
 msgid "Load"
 msgstr "Загрузка"
 
-#: cinelerra//swindow.C:123
+#: cinelerra//swindow.C:111
 msgid "script text file path required"
 msgstr ""
 
 msgid "script text file path required"
 msgstr ""
 
-#: cinelerra//swindow.C:144
+#: cinelerra//swindow.C:132
 msgid "script microdvd file path required"
 msgstr ""
 
 msgid "script microdvd file path required"
 msgstr ""
 
-#: cinelerra//swindow.C:167
+#: cinelerra//swindow.C:155
 msgid "File Size:"
 msgstr ""
 
 msgid "File Size:"
 msgstr ""
 
-#: cinelerra//swindow.C:170
+#: cinelerra//swindow.C:158
 msgid "Entries:"
 msgstr ""
 
 msgid "Entries:"
 msgstr ""
 
-#: cinelerra//swindow.C:175
+#: cinelerra//swindow.C:163
 msgid "Lines:"
 msgstr ""
 
 msgid "Lines:"
 msgstr ""
 
-#: cinelerra//swindow.C:176
+#: cinelerra//swindow.C:164
 msgid "Texts:"
 msgstr ""
 
 msgid "Texts:"
 msgstr ""
 
-#: cinelerra//swindow.C:196
+#: cinelerra//swindow.C:184
 msgid "Script Text:"
 msgstr ""
 
 msgid "Script Text:"
 msgstr ""
 
-#: cinelerra//swindow.C:198 cinelerra//swindow.C:204
+#: cinelerra//swindow.C:186 cinelerra//swindow.C:192
 msgid "Line Text:"
 msgstr ""
 
 msgid "Line Text:"
 msgstr ""
 
-#: cinelerra//swindow.C:217
+#: cinelerra//swindow.C:205
 msgid ""
 "Adding Subtitles: quick \"How To\" (= or * indicates comment)\n"
 "*2345678901234567890123456789012345678901234567890123456789\n"
 msgid ""
 "Adding Subtitles: quick \"How To\" (= or * indicates comment)\n"
 "*2345678901234567890123456789012345678901234567890123456789\n"
@@ -7058,19 +7121,19 @@ msgid ""
 "This is the second entry.\n"
 msgstr ""
 
 "This is the second entry.\n"
 msgstr ""
 
-#: cinelerra//swindow.C:249
+#: cinelerra//swindow.C:237
 msgid ": Subtitle"
 msgstr ": Субтитры"
 
 msgid ": Subtitle"
 msgstr ": Субтитры"
 
-#: cinelerra//swindow.C:523
+#: cinelerra//swindow.C:511
 msgid "Prev"
 msgstr "Предыд."
 
 msgid "Prev"
 msgstr "Предыд."
 
-#: cinelerra//swindow.C:539
+#: cinelerra//swindow.C:527
 msgid "Next"
 msgstr "След."
 
 msgid "Next"
 msgstr "След."
 
-#: cinelerra//swindow.C:804
+#: cinelerra//swindow.C:792
 #, c-format
 msgid ""
 "cannot open: \"%s\"\n"
 #, c-format
 msgid ""
 "cannot open: \"%s\"\n"
@@ -7078,7 +7141,7 @@ msgid ""
 msgstr "cannot open: \"%s\"\n"
 "%s"
 
 msgstr "cannot open: \"%s\"\n"
 "%s"
 
-#: cinelerra//swindow.C:856
+#: cinelerra//swindow.C:844
 #, c-format
 msgid ""
 "Unable to open %s:\n"
 #, c-format
 msgid ""
 "Unable to open %s:\n"
@@ -7086,11 +7149,11 @@ msgid ""
 msgstr "Unable to open %s:\n"
 "%m"
 
 msgstr "Unable to open %s:\n"
 "%m"
 
-#: cinelerra//swindow.C:1015
+#: cinelerra//swindow.C:1003
 msgid "SubTitle..."
 msgstr "Субтитры..."
 
 msgid "SubTitle..."
 msgstr "Субтитры..."
 
-#: cinelerra//swindow.C:1015
+#: cinelerra//swindow.C:1003
 msgid "Alt-y"
 msgstr "Alt-y"
 
 msgid "Alt-y"
 msgstr "Alt-y"
 
@@ -7129,8 +7192,8 @@ msgstr "Суб."
 
 #: cinelerra//tipwindow.C:37
 msgid "Shift-click on a curve keyframe to snap it to the neighboring values."
 
 #: cinelerra//tipwindow.C:37
 msgid "Shift-click on a curve keyframe to snap it to the neighboring values."
-msgstr "`Shift+щелчок` по ключевому кадру производит автоматическое выравнивание\n"
-"его значения по ближайшему к нему значению соседнего ключевого кадра."
+msgstr "Удерживая Shift, сместите ключ. кадр. Произойдёт автоматическое выравнивание\n"
+"его значения по соседнему ключ. кадру с ближайшим к нему значением."
 
 #: cinelerra//tipwindow.C:39
 msgid ""
 
 #: cinelerra//tipwindow.C:39
 msgid ""
@@ -7501,62 +7564,62 @@ msgstr ": Предупреждение"
 msgid "Don't show this warning again."
 msgstr "Не показывать больше это предупреждение."
 
 msgid "Don't show this warning again."
 msgstr "Не показывать больше это предупреждение."
 
-#: cinelerra//zoombar.C:73 cinelerra//zoombar.C:74
+#: cinelerra//zoombar.C:71
 msgid "Duration visible in the timeline"
 msgstr "Масштаб монтажного стола"
 
 msgid "Duration visible in the timeline"
 msgstr "Масштаб монтажного стола"
 
-#: cinelerra//zoombar.C:80 cinelerra//zoombar.C:81
+#: cinelerra//zoombar.C:75
 msgid "Audio waveform scale"
 msgstr "Масштаб отображения\n"
 "звук. волны на дорожке"
 
 msgid "Audio waveform scale"
 msgstr "Масштаб отображения\n"
 "звук. волны на дорожке"
 
-#: cinelerra//zoombar.C:87 cinelerra//zoombar.C:88
+#: cinelerra//zoombar.C:79
 msgid "Height of tracks in the timeline"
 msgid "Height of tracks in the timeline"
-msgstr "Ð\92Ñ\8bÑ\81оÑ\82а Ð¾Ñ\82обÑ\80ажениÑ\8f Ð´Ð¾Ñ\80ожек"
+msgstr "Высота дорожек"
 
 
-#: cinelerra//zoombar.C:430
+#: cinelerra//zoombar.C:381
 msgid "Automation range maximum"
 msgstr "Макс. значение\n"
 "диапазона автоматизации"
 
 msgid "Automation range maximum"
 msgstr "Макс. значение\n"
 "диапазона автоматизации"
 
-#: cinelerra//zoombar.C:432
+#: cinelerra//zoombar.C:383
 msgid "Automation range minimum"
 msgstr "Мин. значение\n"
 "диапазона автоматизации"
 
 msgid "Automation range minimum"
 msgstr "Мин. значение\n"
 "диапазона автоматизации"
 
-#: cinelerra//zoombar.C:464
+#: cinelerra//zoombar.C:415
 msgid "Automation Type"
 msgstr "Тип автоматизации (fade)"
 
 msgid "Automation Type"
 msgstr "Тип автоматизации (fade)"
 
-#: cinelerra//zoombar.C:480
+#: cinelerra//zoombar.C:431
 msgid "Audio Fade:"
 msgstr "Громкость"
 
 msgid "Audio Fade:"
 msgstr "Громкость"
 
-#: cinelerra//zoombar.C:481
+#: cinelerra//zoombar.C:432
 msgid "Video Fade:"
 msgstr "Непрозрачность"
 
 msgid "Video Fade:"
 msgstr "Непрозрачность"
 
-#: cinelerra//zoombar.C:482
+#: cinelerra//zoombar.C:433
 msgid "Zoom:"
 msgstr "Z (глубина):"
 
 msgid "Zoom:"
 msgstr "Z (глубина):"
 
-#: cinelerra//zoombar.C:483 plugins/titler/titlewindow.C:310
+#: cinelerra//zoombar.C:434 plugins/titler/titlerwindow.C:332
 msgid "Speed:"
 msgstr "Скорость:"
 
 msgid "Speed:"
 msgstr "Скорость:"
 
-#: cinelerra//zoombar.C:514
+#: cinelerra//zoombar.C:465
 msgid "Automation range"
 msgstr "Диапазон автоматизации"
 
 msgid "Automation range"
 msgstr "Диапазон автоматизации"
 
-#: cinelerra//zoombar.C:574
+#: cinelerra//zoombar.C:525
 msgid "Selection start time"
 msgstr "Начало выделенного участка"
 
 msgid "Selection start time"
 msgstr "Начало выделенного участка"
 
-#: cinelerra//zoombar.C:612
+#: cinelerra//zoombar.C:563
 msgid "Selection length"
 msgstr "Длина выделенного участка"
 
 msgid "Selection length"
 msgstr "Длина выделенного участка"
 
-#: cinelerra//zoombar.C:646
+#: cinelerra//zoombar.C:597
 msgid "Selection end time"
 msgstr "Конец выделенного участка"
 
 msgid "Selection end time"
 msgstr "Конец выделенного участка"
 
@@ -7755,9 +7818,9 @@ msgstr "Зелёный"
 msgid "blue"
 msgstr "Синий"
 
 msgid "blue"
 msgstr "Синий"
 
-#: plugins/bluebanana/bluebananawindow.C:2086
+#: plugins/bluebanana/bluebananawindow.C:2086 plugins/titler/titler.h:27
 msgid "alpha"
 msgid "alpha"
-msgstr ""
+msgstr "альфа"
 
 #: plugins/bluebanana/bluebananawindow.C:2099
 msgid "pre-erode"
 
 #: plugins/bluebanana/bluebananawindow.C:2099
 msgid "pre-erode"
@@ -7769,7 +7832,7 @@ msgstr ""
 
 #: plugins/bluebanana/bluebananawindow.C:2345
 msgid "Color Adjustment"
 
 #: plugins/bluebanana/bluebananawindow.C:2345
 msgid "Color Adjustment"
-msgstr "Ð\9dаÑ\81Ñ\82Ñ\80ойки цвета"
+msgstr "Ð\9dаÑ\81Ñ\82Ñ\80ойка цвета"
 
 #: plugins/bluebanana/bluebananawindow.C:2346
 msgid " Filter Active"
 
 #: plugins/bluebanana/bluebananawindow.C:2346
 msgid " Filter Active"
@@ -7965,7 +8028,6 @@ msgid "Threshold:"
 msgstr "Порог:"
 
 #: plugins/chromakey/chromakey.C:186 plugins/chromakeyhsv/chromakey.C:294
 msgstr "Порог:"
 
 #: plugins/chromakey/chromakey.C:186 plugins/chromakeyhsv/chromakey.C:294
-#: plugins/titler/titlewindow.C:711
 msgid "Color..."
 msgstr "Цвет..."
 
 msgid "Color..."
 msgstr "Цвет..."
 
@@ -8674,11 +8736,11 @@ msgid "Draw object border"
 msgstr ""
 
 #: plugins/findobject/findobjectwindow.C:496
 msgstr ""
 
 #: plugins/findobject/findobjectwindow.C:496
-#: plugins/findobject/findobjectwindow.C:510 plugins/motion/motionwindow.C:816
-#: plugins/motion2point/motionwindow.C:843
-#: plugins/motion2point/motionwindow.C:855
-#: plugins/motion-cv/motionwindow-cv.C:671
-#: plugins/motion-hv/motionwindow-hv.C:1020
+#: plugins/findobject/findobjectwindow.C:510 plugins/motion/motionwindow.C:818
+#: plugins/motion2point/motionwindow.C:844
+#: plugins/motion2point/motionwindow.C:856
+#: plugins/motion-cv/motionwindow-cv.C:672
+#: plugins/motion-hv/motionwindow-hv.C:1021
 msgid "Don't Calculate"
 msgstr "Не рассчитывать"
 
 msgid "Don't Calculate"
 msgstr "Не рассчитывать"
 
@@ -9180,8 +9242,8 @@ msgstr ""
 msgid "Frame number:"
 msgstr "№ кадра:"
 
 msgid "Frame number:"
 msgstr "№ кадра:"
 
-#: plugins/motion/motionwindow.C:179 plugins/motion51/motionwindow51.C:105
-#: plugins/motion-cv/motionwindow-cv.C:157
+#: plugins/motion/motionwindow.C:182 plugins/motion51/motionwindow51.C:105
+#: plugins/motion-cv/motionwindow-cv.C:160
 msgid ""
 "For best results\n"
 " Set: Play every frame\n"
 msgid ""
 "For best results\n"
 " Set: Play every frame\n"
@@ -9190,162 +9252,161 @@ msgstr "Для достижения наилучших результатов\n"
 "включите опцию 'Воспр-ть каждый кадр'\n"
 "в Параметры->Воспр-ние->Настр. видео (выход)"
 
 "включите опцию 'Воспр-ть каждый кадр'\n"
 "в Параметры->Воспр-ние->Настр. видео (выход)"
 
-#: plugins/motion/motionwindow.C:182 plugins/motion51/motionwindow51.C:108
-#: plugins/motion-cv/motionwindow-cv.C:160
+#: plugins/motion/motionwindow.C:185 plugins/motion51/motionwindow51.C:108
+#: plugins/motion-cv/motionwindow-cv.C:163
 msgid "Currently using: Play every frame"
 msgstr "Опция 'Воспроизводить каждый кадр'\n"
 "включена"
 
 msgid "Currently using: Play every frame"
 msgstr "Опция 'Воспроизводить каждый кадр'\n"
 "включена"
 
-#: plugins/motion/motionwindow.C:185 plugins/motion2point/motionwindow.C:218
+#: plugins/motion/motionwindow.C:188 plugins/motion2point/motionwindow.C:220
 #: plugins/motion-cv/motionwindow-cv.C:145
 #: plugins/motion-cv/motionwindow-cv.C:145
-#: plugins/motion-hv/motionwindow-hv.C:227
+#: plugins/motion-hv/motionwindow-hv.C:229
 msgid "Master layer:"
 msgstr "Мастер - трек:"
 
 msgid "Master layer:"
 msgstr "Мастер - трек:"
 
-#: plugins/motion/motionwindow.C:191 plugins/motion2point/motionwindow.C:227
-#: plugins/motion-cv/motionwindow-cv.C:164
-#: plugins/motion-hv/motionwindow-hv.C:236
+#: plugins/motion/motionwindow.C:194 plugins/motion2point/motionwindow.C:229
+#: plugins/motion-cv/motionwindow-cv.C:167
+#: plugins/motion-hv/motionwindow-hv.C:238
 msgid "Action:"
 msgstr "Действие:"
 
 msgid "Action:"
 msgstr "Действие:"
 
-#: plugins/motion/motionwindow.C:197 plugins/motion2point/motionwindow.C:238
-#: plugins/motion-cv/motionwindow-cv.C:170
-#: plugins/motion-hv/motionwindow-hv.C:247
+#: plugins/motion/motionwindow.C:200 plugins/motion2point/motionwindow.C:240
+#: plugins/motion-cv/motionwindow-cv.C:173
+#: plugins/motion-hv/motionwindow-hv.C:249
 msgid "Calculation:"
 msgstr "Расчёт:"
 
 msgid "Calculation:"
 msgstr "Расчёт:"
 
-#: plugins/motion/motionwindow.C:405 plugins/motion-cv/motionwindow-cv.C:321
+#: plugins/motion/motionwindow.C:408 plugins/motion-cv/motionwindow-cv.C:324
 msgid "Add (loaded) offset from tracked frame"
 msgstr ""
 
 msgid "Add (loaded) offset from tracked frame"
 msgstr ""
 
-#: plugins/motion/motionwindow.C:452 plugins/motion-cv/motionwindow-cv.C:351
+#: plugins/motion/motionwindow.C:455 plugins/motion-cv/motionwindow-cv.C:354
 msgid "Track translation"
 msgstr "Перемещение"
 
 msgid "Track translation"
 msgstr "Перемещение"
 
-#: plugins/motion/motionwindow.C:467 plugins/motion-cv/motionwindow-cv.C:366
-#: plugins/motion-hv/motionwindow-hv.C:589
+#: plugins/motion/motionwindow.C:470 plugins/motion-cv/motionwindow-cv.C:369
+#: plugins/motion-hv/motionwindow-hv.C:591
 msgid "Track rotation"
 msgstr "Вращение"
 
 msgid "Track rotation"
 msgstr "Вращение"
 
-#: plugins/motion/motionwindow.C:563 plugins/motion2point/motionwindow.C:558
+#: plugins/motion/motionwindow.C:566 plugins/motion2point/motionwindow.C:560
 #: plugins/motion51/motionwindow51.C:222
 #: plugins/motion51/motionwindow51.C:222
-#: plugins/motion-cv/motionwindow-cv.C:447
-#: plugins/motion-hv/motionwindow-hv.C:724
+#: plugins/motion-cv/motionwindow-cv.C:450
+#: plugins/motion-hv/motionwindow-hv.C:726
 msgid "Draw vectors"
 msgstr "Показывать векторы движения"
 
 msgid "Draw vectors"
 msgstr "Показывать векторы движения"
 
-#: plugins/motion/motionwindow.C:584 plugins/motion2point/motionwindow.C:586
-#: plugins/motion-cv/motionwindow-cv.C:465
-#: plugins/motion-hv/motionwindow-hv.C:751
+#: plugins/motion/motionwindow.C:587 plugins/motion2point/motionwindow.C:588
+#: plugins/motion-cv/motionwindow-cv.C:468
+#: plugins/motion-hv/motionwindow-hv.C:753
 msgid "Track single frame"
 msgstr "Отслеживать одиночн. кадр"
 
 msgid "Track single frame"
 msgstr "Отслеживать одиночн. кадр"
 
-#: plugins/motion/motionwindow.C:626 plugins/motion2point/motionwindow.C:640
-#: plugins/motion-cv/motionwindow-cv.C:503
-#: plugins/motion-hv/motionwindow-hv.C:805
+#: plugins/motion/motionwindow.C:628 plugins/motion2point/motionwindow.C:641
+#: plugins/motion-cv/motionwindow-cv.C:504
+#: plugins/motion-hv/motionwindow-hv.C:806
 msgid "Track previous frame"
 msgstr "Отслеживать предыдущ. кадр"
 
 msgid "Track previous frame"
 msgstr "Отслеживать предыдущ. кадр"
 
-#: plugins/motion/motionwindow.C:649 plugins/motion2point/motionwindow.C:669
-#: plugins/motion-cv/motionwindow-cv.C:524
-#: plugins/motion-hv/motionwindow-hv.C:834
+#: plugins/motion/motionwindow.C:651 plugins/motion2point/motionwindow.C:670
+#: plugins/motion-cv/motionwindow-cv.C:525
+#: plugins/motion-hv/motionwindow-hv.C:835
 msgid "Previous frame same block"
 msgstr "Отслеживать предыдущ. кадр (позиция блока не изменяется)"
 
 msgid "Previous frame same block"
 msgstr "Отслеживать предыдущ. кадр (позиция блока не изменяется)"
 
-#: plugins/motion/motionwindow.C:690 plugins/motion/motionwindow.C:696
-#: plugins/motion2point/motionwindow.C:716
-#: plugins/motion2point/motionwindow.C:722
-#: plugins/motion-cv/motionwindow-cv.C:564
-#: plugins/motion-cv/motionwindow-cv.C:570
-#: plugins/motion-hv/motionwindow-hv.C:881
-#: plugins/motion-hv/motionwindow-hv.C:887 plugins/overlay/overlay.C:170
+#: plugins/motion/motionwindow.C:692 plugins/motion/motionwindow.C:698
+#: plugins/motion2point/motionwindow.C:717
+#: plugins/motion2point/motionwindow.C:723
+#: plugins/motion-cv/motionwindow-cv.C:565
+#: plugins/motion-cv/motionwindow-cv.C:571
+#: plugins/motion-hv/motionwindow-hv.C:882
+#: plugins/motion-hv/motionwindow-hv.C:888 plugins/overlay/overlay.C:170
 #: plugins/overlayaudio/overlayaudio.C:163 plugins/reroute/reroute.C:164
 #: plugins/overlayaudio/overlayaudio.C:163 plugins/reroute/reroute.C:164
-#: plugins/titler/titlewindow.C:1039
+#: plugins/titler/titlerwindow.C:1227
 msgid "Top"
 msgstr "Верх"
 
 msgid "Top"
 msgstr "Верх"
 
-#: plugins/motion/motionwindow.C:696 plugins/motion2point/motionwindow.C:722
-#: plugins/motion-cv/motionwindow-cv.C:570
-#: plugins/motion-hv/motionwindow-hv.C:887 plugins/overlay/overlay.C:171
+#: plugins/motion/motionwindow.C:698 plugins/motion2point/motionwindow.C:723
+#: plugins/motion-cv/motionwindow-cv.C:571
+#: plugins/motion-hv/motionwindow-hv.C:888 plugins/overlay/overlay.C:171
 #: plugins/overlayaudio/overlayaudio.C:164 plugins/reroute/reroute.C:165
 #: plugins/overlayaudio/overlayaudio.C:164 plugins/reroute/reroute.C:165
-#: plugins/titler/titlewindow.C:1067
+#: plugins/titler/titlerwindow.C:1255
 msgid "Bottom"
 msgstr "Низ"
 
 msgid "Bottom"
 msgstr "Низ"
 
-#: plugins/motion/motionwindow.C:736 plugins/motion/motionwindow.C:749
-#: plugins/motion-cv/motionwindow-cv.C:606
-#: plugins/motion-cv/motionwindow-cv.C:617
-#: plugins/motion-hv/motionwindow-hv.C:933
-#: plugins/motion-hv/motionwindow-hv.C:946
-msgid "Track Subpixel"
-msgstr "Субпиксельное отслеживание"
-
-#: plugins/motion/motionwindow.C:737 plugins/motion/motionwindow.C:751
-#: plugins/motion2point/motionwindow.C:769
-#: plugins/motion2point/motionwindow.C:784
+#: plugins/motion/motionwindow.C:738 plugins/motion/motionwindow.C:751
 #: plugins/motion-cv/motionwindow-cv.C:607
 #: plugins/motion-cv/motionwindow-cv.C:618
 #: plugins/motion-hv/motionwindow-hv.C:934
 #: plugins/motion-cv/motionwindow-cv.C:607
 #: plugins/motion-cv/motionwindow-cv.C:618
 #: plugins/motion-hv/motionwindow-hv.C:934
-#: plugins/motion-hv/motionwindow-hv.C:948
-msgid "Track Pixel"
-msgstr "Ð\9fиксельное отслеживание"
+#: plugins/motion-hv/motionwindow-hv.C:947
+msgid "Track Subpixel"
+msgstr "СÑ\83бпиксельное отслеживание"
 
 
-#: plugins/motion/motionwindow.C:738 plugins/motion/motionwindow.C:753
+#: plugins/motion/motionwindow.C:739 plugins/motion/motionwindow.C:753
+#: plugins/motion2point/motionwindow.C:770
+#: plugins/motion2point/motionwindow.C:785
 #: plugins/motion-cv/motionwindow-cv.C:608
 #: plugins/motion-cv/motionwindow-cv.C:619
 #: plugins/motion-hv/motionwindow-hv.C:935
 #: plugins/motion-cv/motionwindow-cv.C:608
 #: plugins/motion-cv/motionwindow-cv.C:619
 #: plugins/motion-hv/motionwindow-hv.C:935
-#: plugins/motion-hv/motionwindow-hv.C:950
-msgid "Stabilize Subpixel"
-msgstr "СÑ\83бпикÑ\81елÑ\8cное Ñ\81Ñ\82абилиз-ние"
+#: plugins/motion-hv/motionwindow-hv.C:949
+msgid "Track Pixel"
+msgstr "Ð\9fикÑ\81елÑ\8cное Ð¾Ñ\82Ñ\81леживание"
 
 
-#: plugins/motion/motionwindow.C:739 plugins/motion/motionwindow.C:755
-#: plugins/motion2point/motionwindow.C:771
-#: plugins/motion2point/motionwindow.C:790
+#: plugins/motion/motionwindow.C:740 plugins/motion/motionwindow.C:755
 #: plugins/motion-cv/motionwindow-cv.C:609
 #: plugins/motion-cv/motionwindow-cv.C:620
 #: plugins/motion-hv/motionwindow-hv.C:936
 #: plugins/motion-cv/motionwindow-cv.C:609
 #: plugins/motion-cv/motionwindow-cv.C:620
 #: plugins/motion-hv/motionwindow-hv.C:936
-#: plugins/motion-hv/motionwindow-hv.C:952
+#: plugins/motion-hv/motionwindow-hv.C:951
+msgid "Stabilize Subpixel"
+msgstr "Субпиксельное стабилиз-ние"
+
+#: plugins/motion/motionwindow.C:741 plugins/motion/motionwindow.C:757
+#: plugins/motion2point/motionwindow.C:772
+#: plugins/motion2point/motionwindow.C:791
+#: plugins/motion-cv/motionwindow-cv.C:610
+#: plugins/motion-cv/motionwindow-cv.C:621
+#: plugins/motion-hv/motionwindow-hv.C:937
+#: plugins/motion-hv/motionwindow-hv.C:953
 msgid "Stabilize Pixel"
 msgstr "Пиксельное стабилиз-ние"
 
 msgid "Stabilize Pixel"
 msgstr "Пиксельное стабилиз-ние"
 
-#: plugins/motion/motionwindow.C:801 plugins/motion/motionwindow.C:812
-#: plugins/motion-cv/motionwindow-cv.C:662
-#: plugins/motion-cv/motionwindow-cv.C:673
+#: plugins/motion/motionwindow.C:803 plugins/motion/motionwindow.C:814
+#: plugins/motion-cv/motionwindow-cv.C:663
+#: plugins/motion-cv/motionwindow-cv.C:674
 msgid "Save coords to tracking file"
 msgstr "Сохранить коорд-ты в файл коорд-т"
 
 msgid "Save coords to tracking file"
 msgstr "Сохранить коорд-ты в файл коорд-т"
 
-#: plugins/motion/motionwindow.C:802 plugins/motion/motionwindow.C:813
-#: plugins/motion-cv/motionwindow-cv.C:663
-#: plugins/motion-cv/motionwindow-cv.C:674
+#: plugins/motion/motionwindow.C:804 plugins/motion/motionwindow.C:815
+#: plugins/motion-cv/motionwindow-cv.C:664
+#: plugins/motion-cv/motionwindow-cv.C:675
 msgid "Load coords from tracking file"
 msgstr "Загрузить коорд-ты из файла коорд-т"
 
 msgid "Load coords from tracking file"
 msgstr "Загрузить коорд-ты из файла коорд-т"
 
-#: plugins/motion/motionwindow.C:803 plugins/motion/motionwindow.C:814
-#: plugins/motion2point/motionwindow.C:844
-#: plugins/motion2point/motionwindow.C:858
-#: plugins/motion-cv/motionwindow-cv.C:661
-#: plugins/motion-cv/motionwindow-cv.C:672
-#: plugins/motion-hv/motionwindow-hv.C:1003
-#: plugins/motion-hv/motionwindow-hv.C:1017
+#: plugins/motion/motionwindow.C:805 plugins/motion/motionwindow.C:816
+#: plugins/motion2point/motionwindow.C:845
+#: plugins/motion2point/motionwindow.C:859
+#: plugins/motion-cv/motionwindow-cv.C:662
+#: plugins/motion-cv/motionwindow-cv.C:673
+#: plugins/motion-hv/motionwindow-hv.C:1004
+#: plugins/motion-hv/motionwindow-hv.C:1018
 msgid "Recalculate"
 msgstr "Пересчитывать"
 
 msgid "Recalculate"
 msgstr "Пересчитывать"
 
-#: plugins/motion/motionwindow.C:865 plugins/motion2point/motionwindow.C:925
-#: plugins/motion-cv/motionwindow-cv.C:723
-#: plugins/motion-hv/motionwindow-hv.C:1077
-#: plugins/sharpen/sharpenwindow.C:114
+#: plugins/motion/motionwindow.C:867 plugins/motion2point/motionwindow.C:926
+#: plugins/motion-cv/motionwindow-cv.C:724
+#: plugins/motion-hv/motionwindow-hv.C:1078 plugins/sharpen/sharpenwindow.C:114
 msgid "Horizontal only"
 msgstr "Только по горизонтали"
 
 msgid "Horizontal only"
 msgstr "Только по горизонтали"
 
-#: plugins/motion/motionwindow.C:866 plugins/motion2point/motionwindow.C:926
-#: plugins/motion-cv/motionwindow-cv.C:724
-#: plugins/motion-hv/motionwindow-hv.C:1078
+#: plugins/motion/motionwindow.C:868 plugins/motion2point/motionwindow.C:927
+#: plugins/motion-cv/motionwindow-cv.C:725
+#: plugins/motion-hv/motionwindow-hv.C:1079
 msgid "Vertical only"
 msgstr "Только по вертикали"
 
 msgid "Vertical only"
 msgstr "Только по вертикали"
 
-#: plugins/motion/motionwindow.C:867 plugins/motion2point/motionwindow.C:927
-#: plugins/motion-cv/motionwindow-cv.C:725
-#: plugins/motion-hv/motionwindow-hv.C:1079
+#: plugins/motion/motionwindow.C:869 plugins/motion2point/motionwindow.C:928
+#: plugins/motion-cv/motionwindow-cv.C:726
+#: plugins/motion-hv/motionwindow-hv.C:1080
 msgid "Both"
 msgstr "Оба направления"
 
 msgid "Both"
 msgstr "Оба направления"
 
@@ -9381,33 +9442,33 @@ msgstr "Направление поиска:"
 msgid "Settling speed:"
 msgstr ""
 
 msgid "Settling speed:"
 msgstr ""
 
-#: plugins/motion2point/motionwindow.C:768
-#: plugins/motion2point/motionwindow.C:781
+#: plugins/motion2point/motionwindow.C:769
+#: plugins/motion2point/motionwindow.C:782
 msgid "Track"
 msgstr "Отслеживание"
 
 msgid "Track"
 msgstr "Отслеживание"
 
-#: plugins/motion2point/motionwindow.C:770
-#: plugins/motion2point/motionwindow.C:787
+#: plugins/motion2point/motionwindow.C:771
+#: plugins/motion2point/motionwindow.C:788
 msgid "Stabilize"
 msgstr "Стабилизирование"
 
 msgid "Stabilize"
 msgstr "Стабилизирование"
 
-#: plugins/motion2point/motionwindow.C:845
-#: plugins/motion2point/motionwindow.C:861
-#: plugins/motion-hv/motionwindow-hv.C:1001
-#: plugins/motion-hv/motionwindow-hv.C:1013
+#: plugins/motion2point/motionwindow.C:846
+#: plugins/motion2point/motionwindow.C:862
+#: plugins/motion-hv/motionwindow-hv.C:1002
+#: plugins/motion-hv/motionwindow-hv.C:1014
 msgid "Save coords to /tmp"
 msgstr "Сохранить координаты в /tmp"
 
 msgid "Save coords to /tmp"
 msgstr "Сохранить координаты в /tmp"
 
-#: plugins/motion2point/motionwindow.C:846
-#: plugins/motion2point/motionwindow.C:864
-#: plugins/motion-hv/motionwindow-hv.C:1002
-#: plugins/motion-hv/motionwindow-hv.C:1015
+#: plugins/motion2point/motionwindow.C:847
+#: plugins/motion2point/motionwindow.C:865
+#: plugins/motion-hv/motionwindow-hv.C:1003
+#: plugins/motion-hv/motionwindow-hv.C:1016
 msgid "Load coords from /tmp"
 msgstr "Загрузить координаты из /tmp"
 
 #: plugins/motion51/motion51.C:123
 msgid "Motion51"
 msgid "Load coords from /tmp"
 msgstr "Загрузить координаты из /tmp"
 
 #: plugins/motion51/motion51.C:123
 msgid "Motion51"
-msgstr ""
+msgstr "Движение (51)"
 
 #: plugins/motion51/motionwindow51.C:52
 msgid "Sample Radius%"
 
 #: plugins/motion51/motionwindow51.C:52
 msgid "Sample Radius%"
@@ -9463,7 +9524,7 @@ msgstr ""
 
 #: plugins/motionblur/motionblur.C:315
 msgid "Motion Blur"
 
 #: plugins/motionblur/motionblur.C:315
 msgid "Motion Blur"
-msgstr "Размытие - Камера X/Y"
+msgstr "Размытие (Камера X/Y)"
 
 #: plugins/motion-cv/motion-cv.C:209
 msgid "MotionCV"
 
 #: plugins/motion-cv/motion-cv.C:209
 msgid "MotionCV"
@@ -9581,8 +9642,9 @@ msgid "Current X:"
 msgstr "Текущая X:"
 
 #: plugins/perspective/perspective.C:155 plugins/radialblur/radialblur.C:280
 msgstr "Текущая X:"
 
 #: plugins/perspective/perspective.C:155 plugins/radialblur/radialblur.C:280
-#: plugins/titler/titlewindow.C:275 plugins/yuv/yuv.C:178
-#: plugins/yuv/yuvwindow.C:43 plugins/zoomblur/zoomblur.C:292
+#: plugins/titler/titlerwindow.C:279 plugins/titler/titlerwindow.C:287
+#: plugins/yuv/yuv.C:178 plugins/yuv/yuvwindow.C:43
+#: plugins/zoomblur/zoomblur.C:292
 msgid "Y:"
 msgstr "Y:"
 
 msgid "Y:"
 msgstr "Y:"
 
@@ -9741,19 +9803,19 @@ msgstr ""
 msgid "Angle"
 msgstr "Угол"
 
 msgid "Angle"
 msgstr "Угол"
 
-#: plugins/polar/polarwindow.C:106 plugins/whirl/whirlwindow.C:110
-#: plugins/yuv/yuvwindow.C:109
+#: plugins/polar/polarwindow.C:109 plugins/whirl/whirlwindow.C:113
+#: plugins/yuv/yuvwindow.C:113
 msgid "Automate"
 msgstr ""
 
 msgid "Automate"
 msgstr ""
 
-#: plugins/radialblur/radialblur.C:276 plugins/titler/titlewindow.C:270
-#: plugins/zoomblur/zoomblur.C:288
+#: plugins/radialblur/radialblur.C:276 plugins/titler/titlerwindow.C:278
+#: plugins/titler/titlerwindow.C:282 plugins/zoomblur/zoomblur.C:288
 msgid "X:"
 msgstr "X:"
 
 #: plugins/radialblur/radialblur.C:383
 msgid "Radial Blur"
 msgid "X:"
 msgstr "X:"
 
 #: plugins/radialblur/radialblur.C:383
 msgid "Radial Blur"
-msgstr "РадиалÑ\8cное Ñ\80азмÑ\8bÑ\82ие"
+msgstr "РазмÑ\8bÑ\82ие Ñ\80адиалÑ\8cное"
 
 #: plugins/reframe/reframe.C:54
 msgid "Reframe"
 
 #: plugins/reframe/reframe.C:54
 msgid "Reframe"
@@ -9942,7 +10004,7 @@ msgstr "B_dy:"
 
 #: plugins/rgbshift/rgbshift.C:211
 msgid "RGBShift"
 
 #: plugins/rgbshift/rgbshift.C:211
 msgid "RGBShift"
-msgstr ""
+msgstr "Сдвиг каналов RGB"
 
 #: plugins/rotate/rotate.C:310
 msgid "Draw pivot"
 
 #: plugins/rotate/rotate.C:310
 msgid "Draw pivot"
@@ -10049,7 +10111,7 @@ msgstr "Фигурное вытеснение"
 #: plugins/shapewipe/shapewipe.C:798
 #, c-format
 msgid "Shape Wipe: cannot load shape %s\n"
 #: plugins/shapewipe/shapewipe.C:798
 #, c-format
 msgid "Shape Wipe: cannot load shape %s\n"
-msgstr ""
+msgstr "Фигурное вытеснение: невозможно загрузить фигуру %s\n"
 
 #: plugins/sharpen/sharpen.C:115
 msgid "Sharpen"
 
 #: plugins/sharpen/sharpen.C:115
 msgid "Sharpen"
@@ -10079,12 +10141,12 @@ msgstr "Чётные поля:"
 msgid "ShiftInterlace"
 msgstr "Сдвиг полей"
 
 msgid "ShiftInterlace"
 msgstr "Сдвиг полей"
 
-#: plugins/slide/slide.C:50 plugins/titler/titlewindow.C:995
+#: plugins/slide/slide.C:50 plugins/titler/titlerwindow.C:1183
 #: plugins/wipe/wipe.C:49
 msgid "Left"
 msgstr "Влево"
 
 #: plugins/wipe/wipe.C:49
 msgid "Left"
 msgstr "Влево"
 
-#: plugins/slide/slide.C:72 plugins/titler/titlewindow.C:1023
+#: plugins/slide/slide.C:72 plugins/titler/titlerwindow.C:1211
 #: plugins/wipe/wipe.C:71
 msgid "Right"
 msgstr "Вправо"
 #: plugins/wipe/wipe.C:71
 msgid "Right"
 msgstr "Вправо"
@@ -10125,16 +10187,11 @@ msgstr "Запуск команды %s\n"
 msgid "Export of %s to %s failed\n"
 msgstr "Экспорт %s в %s не удался\n"
 
 msgid "Export of %s to %s failed\n"
 msgstr "Экспорт %s в %s не удался\n"
 
-#: plugins/svg/svg.C:209
+#: plugins/svg/svg.C:202
 #, c-format
 msgid "The file %s that was generated from %s is not in PNG format. Try to delete all *.png files.\n"
 msgstr "Файл %s, созданный из %s, не PNG формата. Попробуйте удалить все *.png файлы.\n"
 
 #, c-format
 msgid "The file %s that was generated from %s is not in PNG format. Try to delete all *.png files.\n"
 msgstr "Файл %s, созданный из %s, не PNG формата. Попробуйте удалить все *.png файлы.\n"
 
-#: plugins/svg/svg.C:214
-#, c-format
-msgid "Access mmap to %s as %s failed.\n"
-msgstr "Access mmap to %s as %s failed.\n"
-
 #: plugins/svg/svgwin.C:58 plugins/translate/translatewin.C:86
 msgid "Out X:"
 msgstr "Вывод по X:"
 #: plugins/svg/svgwin.C:58 plugins/translate/translatewin.C:86
 msgid "Out X:"
 msgstr "Вывод по X:"
@@ -10298,7 +10355,7 @@ msgstr "Макс:"
 
 #: plugins/timeavg/timeavg.C:118
 msgid "Time Average"
 
 #: plugins/timeavg/timeavg.C:118
 msgid "Time Average"
-msgstr "Шлейф времени"
+msgstr "Шлейф времени (TA)"
 
 #: plugins/timeavg/timeavgwindow.C:47
 msgid "Frame count:"
 
 #: plugins/timeavg/timeavgwindow.C:47
 msgid "Frame count:"
@@ -10427,105 +10484,205 @@ msgstr ""
 msgid "Time Stretch RT"
 msgstr "Резиновое время (RT)"
 
 msgid "Time Stretch RT"
 msgstr "Резиновое время (RT)"
 
-#: plugins/titler/title.C:293
+#: plugins/titler/titler.C:300
 #, c-format
 #, c-format
-msgid "GlyphUnit::process_package FT_New_Face failed.\n"
-msgstr "GlyphUnit::process_package FT_New_Face failed.\n"
+msgid "GlyphUnit::process_package FT_New_Face failed, path=%s\n"
+msgstr "GlyphUnit::process_package FT_New_Face failed, path=%s\n"
 
 
-#: plugins/titler/title.C:317
+#: plugins/titler/titler.C:327
 #, c-format
 msgid "GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
 msgstr "GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
 
 #, c-format
 msgid "GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
 msgstr "GlyphUnit::process_package FT_Load_Char failed - char: %li.\n"
 
-#: plugins/titler/title.C:1376
+#: plugins/titler/titler.C:1346
 #, c-format
 msgid "TitleMain::load_freetype_face %s failed.\n"
 msgstr "TitleMain::load_freetype_face %s failed.\n"
 
 #, c-format
 msgid "TitleMain::load_freetype_face %s failed.\n"
 msgstr "TitleMain::load_freetype_face %s failed.\n"
 
-#: plugins/titler/title.C:1929
+#: plugins/titler/titler.C:2345
 msgid "No motion"
 msgstr "Без движения"
 
 msgid "No motion"
 msgstr "Без движения"
 
-#: plugins/titler/title.C:1930
+#: plugins/titler/titler.C:2346
 msgid "Bottom to top"
 msgstr "Снизу вверх"
 
 msgid "Bottom to top"
 msgstr "Снизу вверх"
 
-#: plugins/titler/title.C:1931
+#: plugins/titler/titler.C:2347
 msgid "Top to bottom"
 msgstr "Сверху вниз"
 
 msgid "Top to bottom"
 msgstr "Сверху вниз"
 
-#: plugins/titler/title.C:1932
+#: plugins/titler/titler.C:2348
 msgid "Right to left"
 msgstr "Справа налево"
 
 msgid "Right to left"
 msgstr "Справа налево"
 
-#: plugins/titler/title.C:1933
+#: plugins/titler/titler.C:2349
 msgid "Left to right"
 msgstr "Слева направо"
 
 msgid "Left to right"
 msgstr "Слева направо"
 
-#: plugins/titler/titlewindow.C:222
+#: plugins/titler/titler.h:25
+msgid "nudge"
+msgstr "сдвиг"
+
+#: plugins/titler/titler.h:26
+msgid "color"
+msgstr "цвет"
+
+#: plugins/titler/titler.h:28
+msgid "font"
+msgstr "шрифт"
+
+#: plugins/titler/titler.h:29
+msgid "size"
+msgstr "размер"
+
+#: plugins/titler/titler.h:30
+msgid "bold"
+msgstr "жирный"
+
+#: plugins/titler/titler.h:31
+msgid "italic"
+msgstr "наклонный"
+
+#: plugins/titler/titler.h:32
+msgid "caps"
+msgstr "регистр"
+
+#: plugins/titler/titler.h:33
+msgid "ul"
+msgstr "подчёркнутый"
+
+#: plugins/titler/titler.h:34
+msgid "blink"
+msgstr "мигание"
+
+#: plugins/titler/titler.h:35
+msgid "fixed"
+msgstr "интервал"
+
+#: plugins/titler/titler.h:36
+msgid "sup"
+msgstr "индекс"
+
+#: plugins/titler/titler.h:37
+msgid "png"
+msgstr "png"
+
+#: plugins/titler/titlerwindow.C:227
 msgid "Font:"
 msgstr "Шрифт:"
 
 msgid "Font:"
 msgstr "Шрифт:"
 
-#: plugins/titler/titlewindow.C:238
+#: plugins/titler/titlerwindow.C:244
 msgid "Pitch:"
 msgstr "Шаг:"
 
 msgid "Pitch:"
 msgstr "Шаг:"
 
-#: plugins/titler/titlewindow.C:244
+#: plugins/titler/titlerwindow.C:251
 msgid "Style:"
 msgstr "Стиль:"
 
 msgid "Style:"
 msgstr "Стиль:"
 
-#: plugins/titler/titlewindow.C:254
+#: plugins/titler/titlerwindow.C:262
 msgid "Justify:"
 msgstr "Выравнивание:"
 
 msgid "Justify:"
 msgstr "Выравнивание:"
 
-#: plugins/titler/titlewindow.C:280
-msgid "Motion type:"
-msgstr "Тип Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ\8f:"
+#: plugins/titler/titlerwindow.C:306
+msgid "Motion:"
+msgstr "Ð\94вижение"
 
 
-#: plugins/titler/titlewindow.C:291
+#: plugins/titler/titlerwindow.C:313
 msgid "Drop shadow:"
 msgstr "Тень:"
 
 msgid "Drop shadow:"
 msgstr "Тень:"
 
-#: plugins/titler/titlewindow.C:298
+#: plugins/titler/titlerwindow.C:320
 msgid "Fade in (sec):"
 msgstr "Проявление (сек):"
 
 msgid "Fade in (sec):"
 msgstr "Проявление (сек):"
 
-#: plugins/titler/titlewindow.C:304
+#: plugins/titler/titlerwindow.C:326
 msgid "Fade out (sec):"
 msgstr "Исчезание (сек):"
 
 msgid "Fade out (sec):"
 msgstr "Исчезание (сек):"
 
-#: plugins/titler/titlewindow.C:337
+#: plugins/titler/titlerwindow.C:353
 msgid "Outline:"
 msgstr "Обводка:"
 
 msgid "Outline:"
 msgstr "Обводка:"
 
-#: plugins/titler/titlewindow.C:343
-msgid "Encoding:"
-msgstr "Кодировка"
+#: plugins/titler/titlerwindow.C:360
+msgid "Stroker:"
+msgstr ""
+
+#: plugins/titler/titlerwindow.C:380
+msgid "background media"
+msgstr "Загрузка файла для фона"
+
+#: plugins/titler/titlerwindow.C:380
+msgid "Select background media path"
+msgstr "Выберите файл для фона:"
 
 
-#: plugins/titler/titlewindow.C:623
+#: plugins/titler/titlerwindow.C:789
 msgid "Bold"
 msgstr "Жирный"
 
 msgid "Bold"
 msgstr "Жирный"
 
-#: plugins/titler/titlewindow.C:639
+#: plugins/titler/titlerwindow.C:805
 msgid "Italic"
 msgstr "Наклонный"
 
 msgid "Italic"
 msgstr "Наклонный"
 
-#: plugins/titler/titlewindow.C:711
+#: plugins/titler/titlerwindow.C:866
+msgid "Text Color..."
+msgstr "Цвет текста..."
+
+#: plugins/titler/titlerwindow.C:878
 msgid "Outline color..."
 msgstr "Цвет обводки..."
 
 msgid "Outline color..."
 msgstr "Цвет обводки..."
 
-#: plugins/titler/titlewindow.C:759
+#: plugins/titler/titlerwindow.C:918
 msgid "Stamp timecode"
 msgstr "Вывод таймкода"
 
 msgid "Stamp timecode"
 msgstr "Вывод таймкода"
 
-#: plugins/titler/titlewindow.C:1009
+#: plugins/titler/titlerwindow.C:1197
 msgid "Center"
 msgstr "Центр"
 
 msgid "Center"
 msgstr "Центр"
 
-#: plugins/titler/titlewindow.C:1053
+#: plugins/titler/titlerwindow.C:1241
 msgid "Mid"
 msgstr "Середина"
 
 msgid "Mid"
 msgstr "Середина"
 
+#: plugins/titler/titlerwindow.C:1271
+msgid "Outline Color"
+msgstr "Цвет обводки"
+
+#: plugins/titler/titlerwindow.C:1271
+msgid "Text Color"
+msgstr "Цвет текста"
+
+#: plugins/titler/titlerwindow.C:1299
+msgid "Drag"
+msgstr "Перетаскивание"
+
+#: plugins/titler/titlerwindow.C:1318
+msgid "Background:"
+msgstr "Фон"
+
+#: plugins/titler/titlerwindow.C:1346
+msgid "Loop playback"
+msgstr "Зациклить воспроизведение"
+
+#: plugins/titler/titlerwindow.C:1400
+msgid "name"
+msgstr "имя"
+
+#: plugins/titler/titlerwindow.C:1452
+msgid "file"
+msgstr "файл"
+
+#: plugins/titler/titlerwindow.C:1545
+msgid "Color"
+msgstr "Цвет"
+
+#: plugins/titler/titlerwindow.C:1599
+msgid "Png file"
+msgstr "Загрузка файла .png"
+
+#: plugins/titler/titlerwindow.C:1599
+msgid "Png path"
+msgstr "Выберите файл .png для загрузки:"
+
 #: plugins/translate/translate.C:115
 msgid "Translate"
 msgstr "Координатное преобразование"
 #: plugins/translate/translate.C:115
 msgid "Translate"
 msgstr "Координатное преобразование"
@@ -10656,7 +10813,7 @@ msgstr "V_dy:"
 
 #: plugins/yuvshift/yuvshift.C:211
 msgid "YUVShift"
 
 #: plugins/yuvshift/yuvshift.C:211
 msgid "YUVShift"
-msgstr ""
+msgstr "Сдвиг каналов YUV"
 
 #: plugins/zoom/zoom.C:100
 msgid "X Magnification:"
 
 #: plugins/zoom/zoom.C:100
 msgid "X Magnification:"
index 7f7110ec638209fdd01d8f7783aa74b8a5de157f..f4c7182dbc6a1abf51d018423bb860558098ecbc 100755 (executable)
@@ -1,7 +1,57 @@
 #!/bin/bash
 #!/bin/bash
+# this script is used on c++ source to modify the _()
+#  gettext calls to use msgqual(ctxt,id) instead.
+# local context regions are defined by using:
+#
+# #undef MSGQUAL
+# #define MSGQUAL "qual_id"
+# ... code with _() ...
+# #undef MSGQUAL
+# #define MSGQUAL 0
+#
+if [ $# -lt 1 -o ! -d "$1" ]; then
+  echo 1>&2 "usage: $0 /<path>/cinelerra-src [/tmp] > /<path>/cin.po"
+  exit 1
+fi
 
 
+cin_dir=`basename "$1"`
+tmp_dir=`mktemp -d -p ${2:-/tmp} cin_XXXXXX`
+trap "rm -rf '$tmp_dir'" EXIT
+
+#need a copy of src dir for editing
+echo 1>&2 "copy"
+cp -a "$1" "$tmp_dir/."
+cd "$tmp_dir/$cin_dir"
+
+echo 1>&2 "edit"
+for d in guicast/ cinelerra/ plugins/*; do
+  if [ ! -d "$d" ]; then continue; fi
+  ls -1 $d/*.[Ch] $d/*.inc 2> /dev/null
+done | while read f ; do
+#qualifier is reset using #define MSGQUAL "qual_id"
+#this changes:
+#   code C_("xxx") [... code _("yyy")]
+#to:
+#   code D_("qual_id#xxx") [... code D_("qual_id#yyy")]
+  sed -n -i "$f" -f - <<<'1,1{x; s/.*/_("/; x}
+:n1 s/^\(#define MSGQUAL[      ]\)/\1/; t n4
+:n2 s/\<C_("/\
+/; t n3; P; d; n; b n1
+:n3 G; s/^\(.*\)\
+\(.*\)\
+\(.*\)$/\1\3\2/; b n2
+:n4 p; s/^#define MSGQUAL[       ]*"\(.*\)"$/D_("\1#/; t n5
+s/^.*$/_("/; h; d; n; b n1
+:n5 h; d; n; b n1
+'
+done
+
+#scan src and generate cin.po
+echo 1>&2 "scan"
 for d in guicast/ cinelerra/ plugins/*; do
   if [ ! -d "$d" ]; then continue; fi
 for d in guicast/ cinelerra/ plugins/*; do
   if [ ! -d "$d" ]; then continue; fi
-  ls -1 $d/*.[Ch] $d/*.inc 2> /dev/null;
-done | xgettext --no-wrap -L C++ -k_ -kN_ -f - -o -
+  ls -1 $d/*.[Ch] $d/*.inc 2> /dev/null
+done | xgettext --no-wrap -L C++ -k_ -kN_ -kD_ -f - -o -
+
+echo 1>&2 "done"