Add language tags for "Generate blank video"

This commit is contained in:
niksedk 2021-06-26 21:40:00 +02:00
parent 6ce83a5603
commit ac0bfe5d1e
9 changed files with 161 additions and 93 deletions

View File

@ -12,7 +12,8 @@
* Waveform "Right-click + Ctrl" will toggle select of a subtitle
* Waveform "Right-click + Shift" will select a range of subtitles
* Add a few profiles for Amazon Prime
* Add new FCE rule: "Remove first dash in non-dialogs"
* Add new FCE rule: "Remove first dash in non-dialogs"
* Add "Video - Generate blank video" - thx OmrSi
* IMPROVED:
* Update Bulgarian translation - thx Калин
* Update Chinese translation - thx nkh0472

View File

@ -761,6 +761,12 @@ Note: Do check free disk space.</WaveFileMalformed>
<FixContinuationStyleX>Fix continuation style: {0}</FixContinuationStyleX>
<FixUnnecessaryLeadingDots>Remove unnecessary leading dots</FixUnnecessaryLeadingDots>
</FixCommonErrors>
<GenerateBlankVideo>
<Title>Generate blank video file</Title>
<CheckeredImage>Chekered image</CheckeredImage>
<SolidColor>Solid color</SolidColor>
<DurationInMinutes>Duration in minutes</DurationInMinutes>
</GenerateBlankVideo>
<GetDictionaries>
<Title>Need dictionaries?</Title>
<DescriptionLine1>Subtitle Edit's spell check is based on the NHunspell engine which</DescriptionLine1>
@ -1162,6 +1168,7 @@ To use an API key go to "Options -&gt; Settings -&gt; Tools" to enter your Googl
<SetVideoOffset>Set video offset...</SetVideoOffset>
<SmptTimeMode>SMPTE timing (drop frame)</SmptTimeMode>
<GenerateTextFromVideo>Generate text from video...</GenerateTextFromVideo>
<GenerateBlankVideo>Generate blank video...</GenerateBlankVideo>
<ImportChaptersFromVideo>Import chapters from video</ImportChaptersFromVideo>
<GenerateImportSceneChanges>Generate/import scene changes...</GenerateImportSceneChanges>
<RemoveSceneChanges>Remove scene changes</RemoveSceneChanges>
@ -1233,7 +1240,7 @@ To use an API key go to "Options -&gt; Settings -&gt; Tools" to enter your Googl
<SizeAllColumnsToFit>Size all columns to fit</SizeAllColumnsToFit>
<SetStyle>Set style</SetStyle>
<SetActor>Set actor</SetActor>
<SetOverrideTags>Set override tags</SetOverrideTags>
<SetOverrideTagsEtc>Set override tags etc.</SetOverrideTagsEtc>
<SubStationAlphaStyles>Sub Station Alpha styles...</SubStationAlphaStyles>
<AdvancedSubStationAlphaStyles>Advanced Sub Station Alpha styles...</AdvancedSubStationAlphaStyles>
<TimedTextSetRegion>Timed Text - set region</TimedTextSetRegion>
@ -1298,6 +1305,7 @@ To use an API key go to "Options -&gt; Settings -&gt; Tools" to enter your Googl
<AdjustDisplayDurationForSelectedLines>Adjust durations for selected lines...</AdjustDisplayDurationForSelectedLines>
<ApplyDurationLimitsForSelectedLines>Apply duration limits for selected lines...</ApplyDurationLimitsForSelectedLines>
<ApplyCustomOverrideTag>Apply custom override tags...</ApplyCustomOverrideTag>
<SetResolution>Set resolution (PlayResX/PlayResY)</SetResolution>
<FixCommonErrorsInSelectedLines>Fix common errors in selected lines...</FixCommonErrorsInSelectedLines>
<ChangeCasingForSelectedLines>Change casing for selected lines...</ChangeCasingForSelectedLines>
<SaveSelectedLines>Save selected lines as...</SaveSelectedLines>

View File

@ -37,8 +37,8 @@ namespace Nikse.SubtitleEdit.Forms
this.labelDuration = new System.Windows.Forms.Label();
this.numericUpDownWidth = new System.Windows.Forms.NumericUpDown();
this.numericUpDownHeight = new System.Windows.Forms.NumericUpDown();
this.labelWidth = new System.Windows.Forms.Label();
this.labelHeight = new System.Windows.Forms.Label();
this.labelResolution = new System.Windows.Forms.Label();
this.labelX = new System.Windows.Forms.Label();
this.groupBoxBackground = new System.Windows.Forms.GroupBox();
this.radioButtonColor = new System.Windows.Forms.RadioButton();
this.radioButtonCheckeredImage = new System.Windows.Forms.RadioButton();
@ -56,7 +56,7 @@ namespace Nikse.SubtitleEdit.Forms
this.panelColor.Location = new System.Drawing.Point(169, 81);
this.panelColor.Name = "panelColor";
this.panelColor.Size = new System.Drawing.Size(21, 20);
this.panelColor.TabIndex = 19;
this.panelColor.TabIndex = 3;
this.panelColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelColor_MouseClick);
//
// buttonColor
@ -64,7 +64,7 @@ namespace Nikse.SubtitleEdit.Forms
this.buttonColor.Location = new System.Drawing.Point(42, 80);
this.buttonColor.Name = "buttonColor";
this.buttonColor.Size = new System.Drawing.Size(121, 23);
this.buttonColor.TabIndex = 20;
this.buttonColor.TabIndex = 2;
this.buttonColor.Text = "Color";
this.buttonColor.UseVisualStyleBackColor = true;
this.buttonColor.Click += new System.EventHandler(this.buttonColor_Click);
@ -73,10 +73,10 @@ namespace Nikse.SubtitleEdit.Forms
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonOK.Location = new System.Drawing.Point(451, 275);
this.buttonOK.Location = new System.Drawing.Point(451, 155);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(121, 23);
this.buttonOK.TabIndex = 21;
this.buttonOK.TabIndex = 9;
this.buttonOK.Text = "Generate";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
@ -86,10 +86,10 @@ namespace Nikse.SubtitleEdit.Forms
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.buttonCancel.Location = new System.Drawing.Point(578, 275);
this.buttonCancel.Location = new System.Drawing.Point(578, 155);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
this.buttonCancel.TabIndex = 22;
this.buttonCancel.TabIndex = 10;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
@ -98,10 +98,10 @@ namespace Nikse.SubtitleEdit.Forms
//
this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.progressBar1.Location = new System.Drawing.Point(12, 275);
this.progressBar1.Location = new System.Drawing.Point(12, 155);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(433, 23);
this.progressBar1.TabIndex = 23;
this.progressBar1.TabIndex = 8;
this.progressBar1.Visible = false;
//
// labelDuration
@ -110,7 +110,7 @@ namespace Nikse.SubtitleEdit.Forms
this.labelDuration.Location = new System.Drawing.Point(12, 29);
this.labelDuration.Name = "labelDuration";
this.labelDuration.Size = new System.Drawing.Size(97, 13);
this.labelDuration.TabIndex = 24;
this.labelDuration.TabIndex = 0;
this.labelDuration.Text = "Duration in minutes";
//
// numericUpDownWidth
@ -127,8 +127,8 @@ namespace Nikse.SubtitleEdit.Forms
0,
0});
this.numericUpDownWidth.Name = "numericUpDownWidth";
this.numericUpDownWidth.Size = new System.Drawing.Size(110, 20);
this.numericUpDownWidth.TabIndex = 25;
this.numericUpDownWidth.Size = new System.Drawing.Size(64, 20);
this.numericUpDownWidth.TabIndex = 3;
this.numericUpDownWidth.Value = new decimal(new int[] {
1080,
0,
@ -137,7 +137,7 @@ namespace Nikse.SubtitleEdit.Forms
//
// numericUpDownHeight
//
this.numericUpDownHeight.Location = new System.Drawing.Point(165, 82);
this.numericUpDownHeight.Location = new System.Drawing.Point(253, 56);
this.numericUpDownHeight.Maximum = new decimal(new int[] {
50000,
0,
@ -149,31 +149,31 @@ namespace Nikse.SubtitleEdit.Forms
0,
0});
this.numericUpDownHeight.Name = "numericUpDownHeight";
this.numericUpDownHeight.Size = new System.Drawing.Size(110, 20);
this.numericUpDownHeight.TabIndex = 26;
this.numericUpDownHeight.Size = new System.Drawing.Size(64, 20);
this.numericUpDownHeight.TabIndex = 5;
this.numericUpDownHeight.Value = new decimal(new int[] {
720,
0,
0,
0});
//
// labelWidth
// labelResolution
//
this.labelWidth.AutoSize = true;
this.labelWidth.Location = new System.Drawing.Point(12, 58);
this.labelWidth.Name = "labelWidth";
this.labelWidth.Size = new System.Drawing.Size(35, 13);
this.labelWidth.TabIndex = 27;
this.labelWidth.Text = "Width";
this.labelResolution.AutoSize = true;
this.labelResolution.Location = new System.Drawing.Point(12, 58);
this.labelResolution.Name = "labelResolution";
this.labelResolution.Size = new System.Drawing.Size(57, 13);
this.labelResolution.TabIndex = 2;
this.labelResolution.Text = "Resolution";
//
// labelHeight
// labelX
//
this.labelHeight.AutoSize = true;
this.labelHeight.Location = new System.Drawing.Point(12, 84);
this.labelHeight.Name = "labelHeight";
this.labelHeight.Size = new System.Drawing.Size(38, 13);
this.labelHeight.TabIndex = 28;
this.labelHeight.Text = "Height";
this.labelX.AutoSize = true;
this.labelX.Location = new System.Drawing.Point(235, 58);
this.labelX.Name = "labelX";
this.labelX.Size = new System.Drawing.Size(12, 13);
this.labelX.TabIndex = 4;
this.labelX.Text = "x";
//
// groupBoxBackground
//
@ -181,10 +181,10 @@ namespace Nikse.SubtitleEdit.Forms
this.groupBoxBackground.Controls.Add(this.radioButtonCheckeredImage);
this.groupBoxBackground.Controls.Add(this.buttonColor);
this.groupBoxBackground.Controls.Add(this.panelColor);
this.groupBoxBackground.Location = new System.Drawing.Point(15, 118);
this.groupBoxBackground.Location = new System.Drawing.Point(339, 12);
this.groupBoxBackground.Name = "groupBoxBackground";
this.groupBoxBackground.Size = new System.Drawing.Size(314, 118);
this.groupBoxBackground.TabIndex = 29;
this.groupBoxBackground.TabIndex = 6;
this.groupBoxBackground.TabStop = false;
this.groupBoxBackground.Text = "Background";
//
@ -194,7 +194,7 @@ namespace Nikse.SubtitleEdit.Forms
this.radioButtonColor.Location = new System.Drawing.Point(18, 57);
this.radioButtonColor.Name = "radioButtonColor";
this.radioButtonColor.Size = new System.Drawing.Size(74, 17);
this.radioButtonColor.TabIndex = 22;
this.radioButtonColor.TabIndex = 1;
this.radioButtonColor.Text = "Solid color";
this.radioButtonColor.UseVisualStyleBackColor = true;
//
@ -205,7 +205,7 @@ namespace Nikse.SubtitleEdit.Forms
this.radioButtonCheckeredImage.Location = new System.Drawing.Point(18, 34);
this.radioButtonCheckeredImage.Name = "radioButtonCheckeredImage";
this.radioButtonCheckeredImage.Size = new System.Drawing.Size(108, 17);
this.radioButtonCheckeredImage.TabIndex = 21;
this.radioButtonCheckeredImage.TabIndex = 0;
this.radioButtonCheckeredImage.TabStop = true;
this.radioButtonCheckeredImage.Text = "Checkered image";
this.radioButtonCheckeredImage.UseVisualStyleBackColor = true;
@ -224,8 +224,8 @@ namespace Nikse.SubtitleEdit.Forms
0,
0});
this.numericUpDownDurationMinutes.Name = "numericUpDownDurationMinutes";
this.numericUpDownDurationMinutes.Size = new System.Drawing.Size(110, 20);
this.numericUpDownDurationMinutes.TabIndex = 30;
this.numericUpDownDurationMinutes.Size = new System.Drawing.Size(64, 20);
this.numericUpDownDurationMinutes.TabIndex = 1;
this.numericUpDownDurationMinutes.Value = new decimal(new int[] {
10,
0,
@ -234,23 +234,24 @@ namespace Nikse.SubtitleEdit.Forms
//
// labelPleaseWait
//
this.labelPleaseWait.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.labelPleaseWait.AutoSize = true;
this.labelPleaseWait.Location = new System.Drawing.Point(12, 259);
this.labelPleaseWait.Location = new System.Drawing.Point(12, 135);
this.labelPleaseWait.Name = "labelPleaseWait";
this.labelPleaseWait.Size = new System.Drawing.Size(70, 13);
this.labelPleaseWait.TabIndex = 31;
this.labelPleaseWait.TabIndex = 7;
this.labelPleaseWait.Text = "Please wait...";
//
// GenerateVideo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(665, 310);
this.ClientSize = new System.Drawing.Size(665, 190);
this.Controls.Add(this.labelPleaseWait);
this.Controls.Add(this.numericUpDownDurationMinutes);
this.Controls.Add(this.groupBoxBackground);
this.Controls.Add(this.labelHeight);
this.Controls.Add(this.labelWidth);
this.Controls.Add(this.labelX);
this.Controls.Add(this.labelResolution);
this.Controls.Add(this.numericUpDownHeight);
this.Controls.Add(this.numericUpDownWidth);
this.Controls.Add(this.labelDuration);
@ -285,8 +286,8 @@ namespace Nikse.SubtitleEdit.Forms
private System.Windows.Forms.Label labelDuration;
private System.Windows.Forms.NumericUpDown numericUpDownWidth;
private System.Windows.Forms.NumericUpDown numericUpDownHeight;
private System.Windows.Forms.Label labelWidth;
private System.Windows.Forms.Label labelHeight;
private System.Windows.Forms.Label labelResolution;
private System.Windows.Forms.Label labelX;
private System.Windows.Forms.GroupBox groupBoxBackground;
private System.Windows.Forms.RadioButton radioButtonColor;
private System.Windows.Forms.RadioButton radioButtonCheckeredImage;

View File

@ -1,6 +1,7 @@
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Logic;
using System;
using System.IO;
using System.Windows.Forms;
namespace Nikse.SubtitleEdit.Forms
@ -28,12 +29,23 @@ namespace Nikse.SubtitleEdit.Forms
radioButtonColor.Checked = true;
}
//Text = LanguageSettings.Current.AssaSetPosition.SetPosition;
//buttonOK.Text = LanguageSettings.Current.General.ge;
Text = LanguageSettings.Current.GenerateBlankVideo.Title;
radioButtonCheckeredImage.Text = LanguageSettings.Current.GenerateBlankVideo.CheckeredImage;
radioButtonColor.Text = LanguageSettings.Current.GenerateBlankVideo.SolidColor;
labelDuration.Text = LanguageSettings.Current.GenerateBlankVideo.DurationInMinutes;
buttonColor.Text = LanguageSettings.Current.Settings.ChooseColor;
buttonOK.Text = LanguageSettings.Current.Watermark.Generate;
labelResolution.Text = LanguageSettings.Current.ExportPngXml.VideoResolution;
labelPleaseWait.Text = LanguageSettings.Current.General.PleaseWait;
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
progressBar1.Visible = false;
labelPleaseWait.Visible = false;
var left = Math.Max(labelResolution.Left + labelResolution.Width, labelDuration.Left + labelDuration.Width) + 5;
numericUpDownDurationMinutes.Left = left;
numericUpDownWidth.Left = left;
labelX.Left = numericUpDownWidth.Left + numericUpDownWidth.Width + 3;
numericUpDownHeight.Left = labelX.Left + labelX.Width + 3;
}
private void buttonOK_Click(object sender, EventArgs e)
@ -50,6 +62,11 @@ namespace Nikse.SubtitleEdit.Forms
VideoFileName = saveDialog.FileName;
}
if (File.Exists(VideoFileName))
{
File.Delete(VideoFileName);
}
progressBar1.Style = ProgressBarStyle.Marquee;
progressBar1.Visible = true;
labelPleaseWait.Visible = true;

View File

@ -1609,6 +1609,7 @@ namespace Nikse.SubtitleEdit.Forms
closeVideoToolStripMenuItem.Text = _language.Menu.Video.CloseVideo;
openSecondSubtitleToolStripMenuItem.Text = _language.Menu.Video.OpenSecondSubtitle;
generateTextFromCurrentVideoToolStripMenuItem.Text = _language.Menu.Video.GenerateTextFromVideo;
generateBlankVideoToolStripMenuItem.Text = _language.Menu.Video.GenerateBlankVideo;
smpteTimeModedropFrameToolStripMenuItem.Text = _language.Menu.Video.SmptTimeMode;
toolStripMenuItemImportChapters.Text = _language.Menu.Video.ImportChaptersFromVideo;

View File

@ -465,7 +465,7 @@
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVFhH7VddSBVBFN5+7BcqEitD78zulpkUFREEQSJE
JApBLxVCFIEU3uvOrhRCxO0pooegIKggesqfu4uWIIE9aL0VYUQREkU/u/dGSfRQFhK5nVPHWmf8udef
JApBLxVCFIEU3uvOrhRCxO0pooeIIKggesqfu4uWIIE9aL0VYUQREkU/u/dGSfRQFhK5nVPHWmf8udef
tz74uOyeb+Z8nJk9M1f7j8ngYXXVOd8W7VGmbXE91LRZJJk5eIyVJteXDPlWIkw7YiSF2E2ymYNrxq54
Jg979+1VDASOdYdkM4O20tX5N00+gAY6N21QDFx0xFCmoaGM5NMPz2SnMPkwn9UcVExkHHGN5NOLVFnZ
vBaTZ6IG7m7fphhIO0e/ZRKJAho2fUiZ/FA0ObLFLPoQ2NZT2QRU4TQNmz54Ou+VDbgmOwMb77BsILCs
@ -479,60 +479,60 @@
g3/qKCxcRJKcEYbhLN8Rz2UT8K6RJP8A1+0HsgHo+2cpPGlkGkStbCBw4kFYW5tHElz72A45uVdQMHhr
XfFqkkSBB9FYVADlXvg6Hu+XTbxzRA1Jfm++k3Dn63aNWE/KiN1rNdj9Jp2dh9Bi4BIgrtkKYCGwCBgD
MiCnX3zG9xhHHeqXAnH8glf1cdu34/fgTOiBm1I3Ei6zFyCmAHc7lgYPnOHEK4E4uQ7ETwj/eOBtaDNw
C/3iM77HuAEsBq4C4imI8+A+wrMgp69puKw4aA4QjeEkSLzxLogQn5EYQ91cII5Djro0f6BpvwB77Ez9
Qp/xygAAAABJRU5ErkJggg==
C/3iM77HuAEsBq4C4imI8+A+wrMgp69puKw4aA4QjeEkSLzxLogQn5EYQ91cII5Djro0f6BpvwBY+Ez5
ifBPwwAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButtonAssProperties.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQZSURBVFhH1VdbaBNZGI5avCLIClbxkkmyUFYRRFS2Xmhd
cWGFRZ98EKEWFEWIM41oH7o2KIg+eEHULtVqd9WttYltsV0tta209qLYi8ZY2zRJm0wmaZsHfRB80O3Z
/5tMS4mTG5MXP/g48//nnP//zj3RfZdgjM2QQqHCF3397pdv3g5LUug0+WYp1doQCoU4r89f9W7Q8ywm
Xd5X5XWt7M+HTexGbQsrrWlm/UPuPtW2Cj0jYnU4HM5S0sSGKEm3rWW1rLDEFpeX7zcwEnuZeKbE3qTa
ZjpP3ahmEKGkiQ1qVKMWIJrn79YzURRrxWCw4hKJUWsTTcyEkiY2khUAnv2rjp27U69ap8aUBNiedrEn
7T1pIWKlLOA8jezCP4/TQsRKWQB2eWVjZ1qIWCkL6HG6BsbGxtalg4iVsoDud64+xaUZiPX9CqCzvmJ0
dLSMWA4Gg8FTk9+JSG13IYYmARRoD65b+Ipv1jCy5RJ2IkIEYmgSQKPY2Otwhdu6nB/aiRS0GyXsRKS+
fyCGJgHpgCYBeGbpKG2lRydXITftO5fqNlut1ply5xjQJAAb6UlHL/v73zZW0dDOnE7nV5SwwaYXrxlE
oG37zu1PJYvArliECX9BwVr4AE0CaJS/V7e8ZFdtjay0ulnehChhg3Vtr9j4+Pi2GoNhrfVHw4Tn8CEG
EaJFKJMDEjQJkCRpPiXdT0IO0EjzyN6GEjZIdftomWbbTdwtIutYvforBEg8/zl0/PgSxNAkIBlUGAyZ
lPwzBDxa81MRCfgAEYECvhj1zgFPZ1HpQ+by+B7LHeIhWgCNdt2gx9sM9SDtiVsoB9wjLVS3BW3sRq4Y
ye2mZR9rs7IWSoJwURbA8yGX2TyH+uSIgcA9mrFNaB8XKnvgANYavukXEZ5Z+hbK9fq5NtPyUQiwGbkL
ch+e54bz8r5EZuFYPnxJQ0XAprcDnh7Y3f1DfWTbUTreu3vp+5cqoz4fyUnIFzvH6eUgBEpeJQuw8K+Z
TjdDcSdGKnsAge2mVW8goNK0YoyW4tokm7N/boSAiAjLDqVLYqQiwGZctSOy9uoczM+TBfgFvk7pkhgp
CTBx9UhE5TDxfjS7fvu1AQKe5eT8FzjBJ/5PAEwJcA55aZPtieJuWncO7R5wXJbVxE0oAvbKnaPArNYM
n0XwRZaCv66442NSwDXa+XiGo/nc4fxIIhZQ0pLIVK/00QgzlO7fgJKfhAD3kSOf6Hr+QXHHhj8QuFLR
0DF110ezw+EIVx09urTSyL2v1OvFMm5lIXVbTMStt5S4TClhLy7anq33CsfcI2azf0QwHyRf/BNB12oG
TXU2jXLqxZsk/TrKbW1tRYJ5xEVEJMLRw/ri8VlP3KCUsOFHfSYR7dEPs5X8sUwSCBiLcaDT/Q+5O/iQ
ERNf6AAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQaSURBVFhH1VdbaBNZGI5rcb2wIApe8JJJIpRVBBGVrRda
FRdcEH3yQYRaUBQhzjSifejaoCD64GVFrVTrdt1da21iW2y3ltpWWlur2IvGWNs0SZtMJmmbB30QfNDt
8f8m01Li5MbkxQ8+zvz/Oef/v3NPdN8lGGPTpFCo4Hlvn/vF6zdDkhQ6Tb7pSrU2hEIhzuvzV74d8DyJ
SZf3ZVltK7vxoIndrGlhJdXNrG/Q3avaVqFnWKwKh8OZSprYECXpT2tpDSsotsXl5XsNjMReJp4ptjep
tpnKUzerGEQoaWKDGlWrBYjm+X/qmCiKNWIwWH6JxKi1iSZmQkkTG8kKAM/+VcvO/V2nWqfGlATYHney
R+3daSFipSzgPI3swt36tBCxUhaAXV7R+CwtRKyUBXQ7Xf2jo6Nr0kHESllA11tXr+LSDMT6fgXQWV86
MjJSSiwDg8HgqYnvRKS2vyGGJgEUaA+uW/iKblUzsuUSdiJCBGJoEkCjWN/jcIXbOp3v24kUtAsl7ESk
vr8jhiYB6YAmAXhm6ShtpkcnRyE35TuH6jZardYf5M4xoEkANtKjjh525782Vt7QzpxO5xeUsMGm568Y
RKBt+46tjyWLwP6wCOP+/PzV8AGaBNAod1W1vGBXbY2spKpZ3oQoYYO1bS/Z2NjYlmqDYbV1hWHcc/gQ
gwjRIpTKAQmaBEiSNJuS7ichB2ikuWRvQQkbpLp9tEwz7CbuNpF1rFz5BQIknv8UOn58AWJoEpAMyg2G
hZT8EwQ8XPVzIQl4DxGBfL4I9c5+z7PCkgfM5fHVyx3iIVoAjXbNgMfbDPUg7YnbKPvdwy1Utwlt7Eau
CMntpsUfajIzf5IE4aIsgOdDLrP5R+qTLQYC/9KMbUD7uFDZAwew1vBNvYjwzNK3UKbXz7SZloxAgM3I
XZD78Dw3lJv7OTILx/LgSxoqAja86fd0w+7qG+wl247S8c7dQ9/bKo36PCQnIZ/tHKeXgxAoeaUswMK/
YjrdNMWdGKnsAQS2m5a/hoAK09JRWoprE2zO+qURAiIiLNuVLomRigCbcfn2yNqrcyAvVxbgF/hapUti
pCTAxNUhEZVDxHvR7Nz5awMEPMnO/j9wgk/8nwCYFOAc9NIm2xPF3bTuHNrd57hMq4kbVwTslTtHgVmt
GT6L4IssBX9dccfHhIBrtPPxDEfzqcP5gUTMoaTFkale5qMRZijdvwElPwkB7iNHPtL1PE9xx4Y/ELhS
3tAxeddHs8PhCFcePbqowsi9q9DrxVJuWQF1m0/ErbeIuFgpYc8v3Jql9wrH3MNms39YMB8kX/wTQddq
Bk11Fo1y8sWbIP06ymltbUWCWcS5RCTC0cP64vFZS1ynlLDhR/1CItqjH2Yr+WOZJBAwFuNAp/sKsgH4
j9uGx+wAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButtonAssAttachments.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -775,7 +775,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAAcQBKgHEASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAcwBKgHMASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -54,6 +54,7 @@ namespace Nikse.SubtitleEdit.Logic
public LanguageStructure.FindDialog FindDialog;
public LanguageStructure.FindSubtitleLine FindSubtitleLine;
public LanguageStructure.FixCommonErrors FixCommonErrors;
public LanguageStructure.GenerateBlankVideo GenerateBlankVideo;
public LanguageStructure.GetDictionaries GetDictionaries;
public LanguageStructure.GetTesseractDictionaries GetTesseractDictionaries;
public LanguageStructure.GoogleTranslate GoogleTranslate;
@ -972,6 +973,14 @@ namespace Nikse.SubtitleEdit.Logic
FixUnnecessaryLeadingDots = "Remove unnecessary leading dots",
};
GenerateBlankVideo = new LanguageStructure.GenerateBlankVideo
{
Title = "Generate blank video file",
CheckeredImage = "Chekered image",
DurationInMinutes = "Duration in minutes",
SolidColor = "Solid color",
};
GetDictionaries = new LanguageStructure.GetDictionaries
{
Title = "Need dictionaries?",
@ -1676,6 +1685,7 @@ namespace Nikse.SubtitleEdit.Logic
SetVideoOffset = "Set video offset...",
SmptTimeMode = "SMPTE timing (drop frame)",
GenerateTextFromVideo = "Generate text from video...",
GenerateBlankVideo = "Generate blank video...",
ImportChaptersFromVideo = "Import chapters from video",
GenerateImportSceneChanges = "Generate/import scene changes...",
RemoveSceneChanges = "Remove scene changes",

View File

@ -2023,6 +2023,18 @@ namespace Nikse.SubtitleEdit.Logic
case "FixCommonErrors/FixUnnecessaryLeadingDots":
language.FixCommonErrors.FixUnnecessaryLeadingDots = reader.Value;
break;
case "GenerateBlankVideo/Title":
language.GenerateBlankVideo.Title = reader.Value;
break;
case "GenerateBlankVideo/CheckeredImage":
language.GenerateBlankVideo.CheckeredImage = reader.Value;
break;
case "GenerateBlankVideo/SolidColor":
language.GenerateBlankVideo.SolidColor = reader.Value;
break;
case "GenerateBlankVideo/DurationInMinutes":
language.GenerateBlankVideo.DurationInMinutes = reader.Value;
break;
case "GetDictionaries/Title":
language.GetDictionaries.Title = reader.Value;
break;
@ -3910,6 +3922,9 @@ namespace Nikse.SubtitleEdit.Logic
case "Main/Menu/Video/GenerateTextFromVideo":
language.Main.Menu.Video.GenerateTextFromVideo = reader.Value;
break;
case "Main/Menu/Video/GenerateBlankVideo":
language.Main.Menu.Video.GenerateBlankVideo = reader.Value;
break;
case "Main/Menu/Video/ImportChaptersFromVideo":
language.Main.Menu.Video.ImportChaptersFromVideo = reader.Value;
break;
@ -4075,6 +4090,9 @@ namespace Nikse.SubtitleEdit.Logic
case "Main/Menu/ContextMenu/SetActor":
language.Main.Menu.ContextMenu.SetActor = reader.Value;
break;
case "Main/Menu/ContextMenu/SetOverrideTagsEtc":
language.Main.Menu.ContextMenu.SetOverrideTagsEtc = reader.Value;
break;
case "Main/Menu/ContextMenu/SubStationAlphaStyles":
language.Main.Menu.ContextMenu.SubStationAlphaStyles = reader.Value;
break;
@ -4267,6 +4285,9 @@ namespace Nikse.SubtitleEdit.Logic
case "Main/Menu/ContextMenu/ApplyCustomOverrideTag":
language.Main.Menu.ContextMenu.ApplyCustomOverrideTag = reader.Value;
break;
case "Main/Menu/ContextMenu/SetResolution":
language.Main.Menu.ContextMenu.SetResolution = reader.Value;
break;
case "Main/Menu/ContextMenu/FixCommonErrorsInSelectedLines":
language.Main.Menu.ContextMenu.FixCommonErrorsInSelectedLines = reader.Value;
break;

View File

@ -839,6 +839,14 @@
public string FixUnnecessaryLeadingDots { get; set; }
}
public class GenerateBlankVideo
{
public string Title { get; set; }
public string CheckeredImage { get; set; }
public string SolidColor { get; set; }
public string DurationInMinutes { get; set; }
}
public class GetDictionaries
{
public string Title { get; set; }
@ -1531,6 +1539,7 @@
public string SetVideoOffset { get; set; }
public string SmptTimeMode { get; set; }
public string GenerateTextFromVideo { get; set; }
public string GenerateBlankVideo { get; set; }
public string ImportChaptersFromVideo { get; set; }
public string GenerateImportSceneChanges { get; set; }
public string RemoveSceneChanges { get; set; }