Updated language tags

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1743 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2013-03-17 13:16:58 +00:00
parent 54f78a2ea2
commit dc3760960c
13 changed files with 414 additions and 153 deletions

View File

@ -4,14 +4,18 @@
* NEW:
* Added a few new subtitle formats
* Added "return-from-fullscreen" button to fullscreen player - thx fox/Leszek
* Added Export to 3D Half-top/bottom - thx r0lZ
* IMPROVED:
* Fix overlapping display times now smarter
* Updated Basque language file - thx Xabier Aramendi
* Updated French language file - thx JM GBT
* Fix missing spaces now works better with italics - thx doc. Jackson
* Added EBU alignment tags ({\an1}..{\an9})
* Added "auto balance lines" to batch converter - thx hacker
* Added "auto balance lines" to 'Batch convert' - thx hacker
* Added scan folder + some mkv support to 'Batch convert'
* Export to image based formats: bold tag support - thx moob
* Updated French ocr replace list - thx Bruno
* Fixed export to 3D Side-by-side to working 3D Half-side-by-side - thx r0lZ
* FIXED:
* After closing "SSA/ASS style designer", first style was applied
to all lines - thx vicgol/Xabier/Mike
@ -21,6 +25,7 @@
* SSA/ASS - allow left margin up to 250 - thx vicgol
* Allow key 'space' in list view to toggle play/pause of video - thx Jakov
* Allow key 'space' in video fullscreen to toggle play/pause - thx fox
* Fixed bug in 'Fix uppercase i inside lowercase word' - thx Kurt
3.3.2 (23 February 2013)

View File

@ -68,8 +68,8 @@
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.groupBoxExportImage = new System.Windows.Forms.GroupBox();
this.subtitleListView1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
this.timerPreview = new System.Windows.Forms.Timer(this.components);
this.subtitleListView1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBoxImageSettings.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDepth3D)).BeginInit();
@ -91,7 +91,7 @@
this.buttonExport.Location = new System.Drawing.Point(517, 566);
this.buttonExport.Name = "buttonExport";
this.buttonExport.Size = new System.Drawing.Size(126, 21);
this.buttonExport.TabIndex = 5;
this.buttonExport.TabIndex = 6;
this.buttonExport.Text = "Export all lines...";
this.buttonExport.UseVisualStyleBackColor = true;
this.buttonExport.Click += new System.EventHandler(this.ButtonExportClick);
@ -115,7 +115,7 @@
this.progressBar1.Location = new System.Drawing.Point(12, 566);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(499, 21);
this.progressBar1.TabIndex = 4;
this.progressBar1.TabIndex = 5;
this.progressBar1.Visible = false;
//
// groupBoxImageSettings
@ -155,7 +155,7 @@
this.groupBoxImageSettings.Location = new System.Drawing.Point(12, 218);
this.groupBoxImageSettings.Name = "groupBoxImageSettings";
this.groupBoxImageSettings.Size = new System.Drawing.Size(712, 161);
this.groupBoxImageSettings.TabIndex = 2;
this.groupBoxImageSettings.TabIndex = 3;
this.groupBoxImageSettings.TabStop = false;
this.groupBoxImageSettings.Text = "Image settings";
//
@ -165,7 +165,7 @@
this.labelDepth.Location = new System.Drawing.Point(304, 137);
this.labelDepth.Name = "labelDepth";
this.labelDepth.Size = new System.Drawing.Size(36, 13);
this.labelDepth.TabIndex = 37;
this.labelDepth.TabIndex = 18;
this.labelDepth.Text = "Depth";
//
// label3D
@ -174,7 +174,7 @@
this.label3D.Location = new System.Drawing.Point(273, 113);
this.label3D.Name = "label3D";
this.label3D.Size = new System.Drawing.Size(21, 13);
this.label3D.TabIndex = 40;
this.label3D.TabIndex = 16;
this.label3D.Text = "3D";
//
// comboBox3D
@ -184,7 +184,7 @@
this.comboBox3D.Location = new System.Drawing.Point(298, 110);
this.comboBox3D.Name = "comboBox3D";
this.comboBox3D.Size = new System.Drawing.Size(121, 21);
this.comboBox3D.TabIndex = 39;
this.comboBox3D.TabIndex = 17;
this.comboBox3D.SelectedIndexChanged += new System.EventHandler(this.comboBox3D_SelectedIndexChanged);
//
// numericUpDownDepth3D
@ -197,7 +197,7 @@
-2147483648});
this.numericUpDownDepth3D.Name = "numericUpDownDepth3D";
this.numericUpDownDepth3D.Size = new System.Drawing.Size(47, 20);
this.numericUpDownDepth3D.TabIndex = 38;
this.numericUpDownDepth3D.TabIndex = 19;
this.numericUpDownDepth3D.ValueChanged += new System.EventHandler(this.numericUpDownDepth3D_ValueChanged);
//
// buttonCustomResolution
@ -206,7 +206,7 @@
this.buttonCustomResolution.Location = new System.Drawing.Point(224, 78);
this.buttonCustomResolution.Name = "buttonCustomResolution";
this.buttonCustomResolution.Size = new System.Drawing.Size(24, 21);
this.buttonCustomResolution.TabIndex = 3;
this.buttonCustomResolution.TabIndex = 6;
this.buttonCustomResolution.Text = "...";
this.buttonCustomResolution.UseVisualStyleBackColor = true;
this.buttonCustomResolution.Click += new System.EventHandler(this.buttonCustomResolution_Click);
@ -218,7 +218,7 @@
this.comboBoxBottomMargin.Location = new System.Drawing.Point(100, 132);
this.comboBoxBottomMargin.Name = "comboBoxBottomMargin";
this.comboBoxBottomMargin.Size = new System.Drawing.Size(121, 21);
this.comboBoxBottomMargin.TabIndex = 5;
this.comboBoxBottomMargin.TabIndex = 10;
this.comboBoxBottomMargin.SelectedIndexChanged += new System.EventHandler(this.comboBoxBottomMargin_SelectedIndexChanged);
//
// labelBottomMargin
@ -227,7 +227,7 @@
this.labelBottomMargin.Location = new System.Drawing.Point(10, 135);
this.labelBottomMargin.Name = "labelBottomMargin";
this.labelBottomMargin.Size = new System.Drawing.Size(74, 13);
this.labelBottomMargin.TabIndex = 36;
this.labelBottomMargin.TabIndex = 9;
this.labelBottomMargin.Text = "Bottom margin";
//
// labelFrameRate
@ -247,7 +247,7 @@
this.comboBoxFramerate.Location = new System.Drawing.Point(537, 134);
this.comboBoxFramerate.Name = "comboBoxFramerate";
this.comboBoxFramerate.Size = new System.Drawing.Size(121, 21);
this.comboBoxFramerate.TabIndex = 16;
this.comboBoxFramerate.TabIndex = 25;
//
// labelLanguage
//
@ -274,7 +274,7 @@
this.comboBoxLanguage.Location = new System.Drawing.Point(537, 105);
this.comboBoxLanguage.Name = "comboBoxLanguage";
this.comboBoxLanguage.Size = new System.Drawing.Size(121, 21);
this.comboBoxLanguage.TabIndex = 15;
this.comboBoxLanguage.TabIndex = 24;
this.comboBoxLanguage.Visible = false;
//
// labelImageFormat
@ -301,7 +301,7 @@
this.comboBoxImageFormat.Location = new System.Drawing.Point(537, 78);
this.comboBoxImageFormat.Name = "comboBoxImageFormat";
this.comboBoxImageFormat.Size = new System.Drawing.Size(121, 21);
this.comboBoxImageFormat.TabIndex = 14;
this.comboBoxImageFormat.TabIndex = 23;
//
// checkBoxBold
//
@ -309,7 +309,7 @@
this.checkBoxBold.Location = new System.Drawing.Point(276, 50);
this.checkBoxBold.Name = "checkBoxBold";
this.checkBoxBold.Size = new System.Drawing.Size(47, 17);
this.checkBoxBold.TabIndex = 7;
this.checkBoxBold.TabIndex = 13;
this.checkBoxBold.Text = "Bold";
this.checkBoxBold.UseVisualStyleBackColor = true;
this.checkBoxBold.CheckedChanged += new System.EventHandler(this.checkBoxBold_CheckedChanged);
@ -320,7 +320,7 @@
this.labelResolution.Location = new System.Drawing.Point(10, 81);
this.labelResolution.Name = "labelResolution";
this.labelResolution.Size = new System.Drawing.Size(51, 13);
this.labelResolution.TabIndex = 26;
this.labelResolution.TabIndex = 4;
this.labelResolution.Text = "Video res";
//
// comboBoxResolution
@ -340,7 +340,7 @@
this.comboBoxResolution.Location = new System.Drawing.Point(100, 78);
this.comboBoxResolution.Name = "comboBoxResolution";
this.comboBoxResolution.Size = new System.Drawing.Size(121, 21);
this.comboBoxResolution.TabIndex = 2;
this.comboBoxResolution.TabIndex = 5;
this.comboBoxResolution.SelectedIndexChanged += new System.EventHandler(this.comboBoxResolution_SelectedIndexChanged);
//
// comboBoxHAlign
@ -354,7 +354,7 @@
this.comboBoxHAlign.Location = new System.Drawing.Point(100, 105);
this.comboBoxHAlign.Name = "comboBoxHAlign";
this.comboBoxHAlign.Size = new System.Drawing.Size(121, 21);
this.comboBoxHAlign.TabIndex = 4;
this.comboBoxHAlign.TabIndex = 8;
this.comboBoxHAlign.SelectedIndexChanged += new System.EventHandler(this.comboBoxHAlign_SelectedIndexChanged);
//
// labelHorizontalAlign
@ -363,7 +363,7 @@
this.labelHorizontalAlign.Location = new System.Drawing.Point(10, 108);
this.labelHorizontalAlign.Name = "labelHorizontalAlign";
this.labelHorizontalAlign.Size = new System.Drawing.Size(30, 13);
this.labelHorizontalAlign.TabIndex = 22;
this.labelHorizontalAlign.TabIndex = 7;
this.labelHorizontalAlign.Text = "Align";
//
// checkBoxAntiAlias
@ -374,7 +374,7 @@
this.checkBoxAntiAlias.Location = new System.Drawing.Point(276, 71);
this.checkBoxAntiAlias.Name = "checkBoxAntiAlias";
this.checkBoxAntiAlias.Size = new System.Drawing.Size(66, 17);
this.checkBoxAntiAlias.TabIndex = 8;
this.checkBoxAntiAlias.TabIndex = 14;
this.checkBoxAntiAlias.Text = "AntiAlias";
this.checkBoxAntiAlias.UseVisualStyleBackColor = true;
this.checkBoxAntiAlias.CheckedChanged += new System.EventHandler(this.checkBoxAntiAlias_CheckedChanged);
@ -385,7 +385,7 @@
this.labelSubtitleFontSize.Location = new System.Drawing.Point(10, 54);
this.labelSubtitleFontSize.Name = "labelSubtitleFontSize";
this.labelSubtitleFontSize.Size = new System.Drawing.Size(84, 13);
this.labelSubtitleFontSize.TabIndex = 20;
this.labelSubtitleFontSize.TabIndex = 2;
this.labelSubtitleFontSize.Text = "Subtitle font size";
//
// comboBoxSubtitleFont
@ -395,7 +395,7 @@
this.comboBoxSubtitleFont.Location = new System.Drawing.Point(100, 24);
this.comboBoxSubtitleFont.Name = "comboBoxSubtitleFont";
this.comboBoxSubtitleFont.Size = new System.Drawing.Size(121, 21);
this.comboBoxSubtitleFont.TabIndex = 0;
this.comboBoxSubtitleFont.TabIndex = 1;
this.comboBoxSubtitleFont.SelectedValueChanged += new System.EventHandler(this.comboBoxSubtitleFont_SelectedValueChanged);
//
// comboBoxSubtitleFontSize
@ -497,7 +497,7 @@
this.comboBoxSubtitleFontSize.Location = new System.Drawing.Point(100, 51);
this.comboBoxSubtitleFontSize.Name = "comboBoxSubtitleFontSize";
this.comboBoxSubtitleFontSize.Size = new System.Drawing.Size(121, 21);
this.comboBoxSubtitleFontSize.TabIndex = 1;
this.comboBoxSubtitleFontSize.TabIndex = 3;
this.comboBoxSubtitleFontSize.SelectedIndexChanged += new System.EventHandler(this.comboBoxSubtitleFontSize_SelectedIndexChanged);
//
// labelSubtitleFont
@ -506,7 +506,7 @@
this.labelSubtitleFont.Location = new System.Drawing.Point(10, 27);
this.labelSubtitleFont.Name = "labelSubtitleFont";
this.labelSubtitleFont.Size = new System.Drawing.Size(63, 13);
this.labelSubtitleFont.TabIndex = 19;
this.labelSubtitleFont.TabIndex = 0;
this.labelSubtitleFont.Text = "Subtitle font";
//
// labelBorderWidth
@ -543,7 +543,7 @@
this.comboBoxBorderWidth.Location = new System.Drawing.Point(537, 51);
this.comboBoxBorderWidth.Name = "comboBoxBorderWidth";
this.comboBoxBorderWidth.Size = new System.Drawing.Size(121, 21);
this.comboBoxBorderWidth.TabIndex = 13;
this.comboBoxBorderWidth.TabIndex = 22;
this.comboBoxBorderWidth.SelectedIndexChanged += new System.EventHandler(this.comboBoxBorderWidth_SelectedIndexChanged);
//
// panelBorderColor
@ -552,7 +552,7 @@
this.panelBorderColor.Location = new System.Drawing.Point(664, 25);
this.panelBorderColor.Name = "panelBorderColor";
this.panelBorderColor.Size = new System.Drawing.Size(21, 20);
this.panelBorderColor.TabIndex = 12;
this.panelBorderColor.TabIndex = 21;
this.panelBorderColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelBorderColor_MouseClick);
//
// buttonBorderColor
@ -560,7 +560,7 @@
this.buttonBorderColor.Location = new System.Drawing.Point(537, 24);
this.buttonBorderColor.Name = "buttonBorderColor";
this.buttonBorderColor.Size = new System.Drawing.Size(121, 21);
this.buttonBorderColor.TabIndex = 11;
this.buttonBorderColor.TabIndex = 20;
this.buttonBorderColor.Text = "Border color";
this.buttonBorderColor.UseVisualStyleBackColor = true;
this.buttonBorderColor.Click += new System.EventHandler(this.buttonBorderColor_Click);
@ -571,7 +571,7 @@
this.panelColor.Location = new System.Drawing.Point(403, 25);
this.panelColor.Name = "panelColor";
this.panelColor.Size = new System.Drawing.Size(21, 20);
this.panelColor.TabIndex = 7;
this.panelColor.TabIndex = 12;
this.panelColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelColor_MouseClick);
//
// buttonColor
@ -579,7 +579,7 @@
this.buttonColor.Location = new System.Drawing.Point(276, 24);
this.buttonColor.Name = "buttonColor";
this.buttonColor.Size = new System.Drawing.Size(121, 21);
this.buttonColor.TabIndex = 6;
this.buttonColor.TabIndex = 11;
this.buttonColor.Text = "Color";
this.buttonColor.UseVisualStyleBackColor = true;
this.buttonColor.Click += new System.EventHandler(this.buttonColor_Click);
@ -592,7 +592,7 @@
this.checkBoxSkipEmptyFrameAtStart.Location = new System.Drawing.Point(276, 92);
this.checkBoxSkipEmptyFrameAtStart.Name = "checkBoxSkipEmptyFrameAtStart";
this.checkBoxSkipEmptyFrameAtStart.Size = new System.Drawing.Size(147, 17);
this.checkBoxSkipEmptyFrameAtStart.TabIndex = 10;
this.checkBoxSkipEmptyFrameAtStart.TabIndex = 15;
this.checkBoxSkipEmptyFrameAtStart.Text = "Skip empty frames at start";
this.checkBoxSkipEmptyFrameAtStart.UseVisualStyleBackColor = true;
//
@ -605,9 +605,14 @@
this.groupBoxExportImage.Location = new System.Drawing.Point(13, 386);
this.groupBoxExportImage.Name = "groupBoxExportImage";
this.groupBoxExportImage.Size = new System.Drawing.Size(711, 174);
this.groupBoxExportImage.TabIndex = 3;
this.groupBoxExportImage.TabIndex = 1;
this.groupBoxExportImage.TabStop = false;
//
// timerPreview
//
this.timerPreview.Interval = 500;
this.timerPreview.Tick += new System.EventHandler(this.timerPreview_Tick);
//
// subtitleListView1
//
this.subtitleListView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@ -627,11 +632,6 @@
this.subtitleListView1.View = System.Windows.Forms.View.Details;
this.subtitleListView1.SelectedIndexChanged += new System.EventHandler(this.subtitleListView1_SelectedIndexChanged);
//
// timerPreview
//
this.timerPreview.Interval = 500;
this.timerPreview.Tick += new System.EventHandler(this.timerPreview_Tick);
//
// ExportPngXml
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -648,6 +648,7 @@
this.MinimumSize = new System.Drawing.Size(730, 630);
this.Name = "ExportPngXml";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "ExportPngXml";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ExportPngXml_FormClosing);

View File

@ -37,7 +37,7 @@
this.labelWriteFormat = new System.Windows.Forms.Label();
this.labelVideoFileName = new System.Windows.Forms.Label();
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
this.label2 = new System.Windows.Forms.Label();
this.labelStartFrom = new System.Windows.Forms.Label();
this.labelExample = new System.Windows.Forms.Label();
this.textBoxExample = new System.Windows.Forms.TextBox();
this.labelDuration = new System.Windows.Forms.Label();
@ -67,7 +67,7 @@
this.buttonCancel.Location = new System.Drawing.Point(269, 269);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 21);
this.buttonCancel.TabIndex = 53;
this.buttonCancel.TabIndex = 13;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
@ -78,7 +78,7 @@
this.buttonOK.Location = new System.Drawing.Point(96, 269);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(167, 21);
this.buttonOK.TabIndex = 52;
this.buttonOK.TabIndex = 12;
this.buttonOK.Text = "&Generate subtitle";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
@ -89,7 +89,7 @@
this.labelDescription.Location = new System.Drawing.Point(13, 13);
this.labelDescription.Name = "labelDescription";
this.labelDescription.Size = new System.Drawing.Size(226, 13);
this.labelDescription.TabIndex = 54;
this.labelDescription.TabIndex = 0;
this.labelDescription.Text = "Choose video file to extract date/time info from";
//
// comboBoxDateTimeFormats
@ -106,7 +106,7 @@
this.comboBoxDateTimeFormats.Location = new System.Drawing.Point(12, 153);
this.comboBoxDateTimeFormats.Name = "comboBoxDateTimeFormats";
this.comboBoxDateTimeFormats.Size = new System.Drawing.Size(332, 21);
this.comboBoxDateTimeFormats.TabIndex = 55;
this.comboBoxDateTimeFormats.TabIndex = 9;
this.comboBoxDateTimeFormats.SelectedIndexChanged += new System.EventHandler(this.comboBoxDateTimeFormats_SelectedIndexChanged);
this.comboBoxDateTimeFormats.TextChanged += new System.EventHandler(this.comboBoxDateTimeFormats_TextChanged);
//
@ -116,7 +116,7 @@
this.labelWriteFormat.Location = new System.Drawing.Point(12, 137);
this.labelWriteFormat.Name = "labelWriteFormat";
this.labelWriteFormat.Size = new System.Drawing.Size(143, 13);
this.labelWriteFormat.TabIndex = 56;
this.labelWriteFormat.TabIndex = 8;
this.labelWriteFormat.Text = "Date/time format write format";
//
// labelVideoFileName
@ -125,7 +125,7 @@
this.labelVideoFileName.Location = new System.Drawing.Point(46, 34);
this.labelVideoFileName.Name = "labelVideoFileName";
this.labelVideoFileName.Size = new System.Drawing.Size(100, 13);
this.labelVideoFileName.TabIndex = 57;
this.labelVideoFileName.TabIndex = 2;
this.labelVideoFileName.Text = "labelVideoFileName";
//
// dateTimePicker1
@ -135,16 +135,16 @@
this.dateTimePicker1.Location = new System.Drawing.Point(12, 87);
this.dateTimePicker1.Name = "dateTimePicker1";
this.dateTimePicker1.Size = new System.Drawing.Size(101, 20);
this.dateTimePicker1.TabIndex = 58;
this.dateTimePicker1.TabIndex = 4;
//
// label2
// labelStartFrom
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(13, 71);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(52, 13);
this.label2.TabIndex = 59;
this.label2.Text = "Start from";
this.labelStartFrom.AutoSize = true;
this.labelStartFrom.Location = new System.Drawing.Point(13, 71);
this.labelStartFrom.Name = "labelStartFrom";
this.labelStartFrom.Size = new System.Drawing.Size(52, 13);
this.labelStartFrom.TabIndex = 3;
this.labelStartFrom.Text = "Start from";
//
// labelExample
//
@ -152,7 +152,7 @@
this.labelExample.Location = new System.Drawing.Point(12, 188);
this.labelExample.Name = "labelExample";
this.labelExample.Size = new System.Drawing.Size(47, 13);
this.labelExample.TabIndex = 61;
this.labelExample.TabIndex = 10;
this.labelExample.Text = "Example";
//
// textBoxExample
@ -164,7 +164,7 @@
this.textBoxExample.Multiline = true;
this.textBoxExample.Name = "textBoxExample";
this.textBoxExample.Size = new System.Drawing.Size(332, 53);
this.textBoxExample.TabIndex = 62;
this.textBoxExample.TabIndex = 11;
//
// labelDuration
//
@ -172,7 +172,7 @@
this.labelDuration.Location = new System.Drawing.Point(249, 70);
this.labelDuration.Name = "labelDuration";
this.labelDuration.Size = new System.Drawing.Size(47, 13);
this.labelDuration.TabIndex = 64;
this.labelDuration.TabIndex = 6;
this.labelDuration.Text = "Duration";
//
// timeUpDownDuration
@ -183,7 +183,7 @@
this.timeUpDownDuration.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownDuration.Name = "timeUpDownDuration";
this.timeUpDownDuration.Size = new System.Drawing.Size(92, 24);
this.timeUpDownDuration.TabIndex = 65;
this.timeUpDownDuration.TabIndex = 7;
//
// timeUpDownStartTime
//
@ -193,7 +193,7 @@
this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownStartTime.Name = "timeUpDownStartTime";
this.timeUpDownStartTime.Size = new System.Drawing.Size(92, 24);
this.timeUpDownStartTime.TabIndex = 63;
this.timeUpDownStartTime.TabIndex = 5;
//
// ExtractDateTimeInfo
//
@ -205,7 +205,7 @@
this.Controls.Add(this.timeUpDownStartTime);
this.Controls.Add(this.textBoxExample);
this.Controls.Add(this.labelExample);
this.Controls.Add(this.label2);
this.Controls.Add(this.labelStartFrom);
this.Controls.Add(this.dateTimePicker1);
this.Controls.Add(this.labelVideoFileName);
this.Controls.Add(this.labelWriteFormat);
@ -240,7 +240,7 @@
private System.Windows.Forms.Label labelWriteFormat;
private System.Windows.Forms.Label labelVideoFileName;
private System.Windows.Forms.DateTimePicker dateTimePicker1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label labelStartFrom;
private System.Windows.Forms.Label labelExample;
private System.Windows.Forms.TextBox textBoxExample;
private Controls.TimeUpDown timeUpDownStartTime;

View File

@ -21,6 +21,7 @@ namespace Nikse.SubtitleEdit.Forms
timeUpDownStartTime.TimeCode = new TimeCode(0, 0, 0, 0);
timeUpDownDuration.TimeCode = new TimeCode(1, 0, 0, 0);
comboBoxDateTimeFormats.Items.Clear();
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
foreach (string format in Configuration.Settings.Tools.GenerateTimeCodePatterns.Split(';'))
{
_formats.Add(format);
@ -28,6 +29,18 @@ namespace Nikse.SubtitleEdit.Forms
}
if (_formats.Count > 0)
comboBoxDateTimeFormats.SelectedIndex = 0;
var l = Configuration.Settings.Language.ExtractDateTimeInfo;
if (!string.IsNullOrEmpty(l.Title)) // Remove in SE 3.4
{
Text = l.Title;
labelDescription.Text = l.Description;
labelStartFrom.Text = l.StartFrom;
labelDuration.Text = Configuration.Settings.Language.General.Duration;
labelExample.Text = l.Example;
buttonOK.Text = l.GenerateSubtitle;
labelWriteFormat.Text = l.DateTimeFormat;
}
}
private string DecodeFormat(DateTime dateTime, string format)
@ -35,7 +48,7 @@ namespace Nikse.SubtitleEdit.Forms
try
{
var sb = new StringBuilder();
foreach (string s in format.Replace("<br />", "@").Replace("<BR />", "@").Replace("<br/>", "@").Replace("<BR/>", "@").Replace("<br>", "@").Replace("<BR>", "@").Split('@'))
foreach (string s in format.Replace("<br />", "|").Replace("<BR />", "|").Replace("<br/>", "|").Replace("<BR/>", "|").Replace("<br>", "|").Replace("<BR>", "|").Split('|'))
{
sb.AppendLine(dateTime.ToString(s));
}

View File

@ -1477,6 +1477,8 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemShowOriginalInPreview.Text = _language.Menu.Edit.ShowOriginalTextInAudioAndVideoPreview;
toolStripMenuItemMakeEmptyFromCurrent.Text = _language.Menu.Tools.MakeNewEmptyTranslationFromCurrentSubtitle;
toolStripMenuItemBatchConvert.Text = _language.Menu.Tools.BatchConvert;
if (!string.IsNullOrEmpty(_language.Menu.Tools.GenerateTimeAsText)) //TODO: Fix in SE 3.4
generateDatetimeInfoFromVideoToolStripMenuItem.Text = _language.Menu.Tools.GenerateTimeAsText;
splitToolStripMenuItem.Text = _language.Menu.Tools.SplitSubtitle;
appendTextVisuallyToolStripMenuItem.Text = _language.Menu.Tools.AppendSubtitle;
joinSubtitlesToolStripMenuItem.Text = _language.Menu.Tools.JoinSubtitles;

View File

@ -681,7 +681,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAAfgBHQH4AR0BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAQgBHgEIAR4BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -227,7 +227,7 @@
// columnHeaderApply
//
this.columnHeaderApply.Text = "Apply";
this.columnHeaderApply.Width = 45;
this.columnHeaderApply.Width = 50;
//
// columnHeaderLine
//

View File

@ -26,6 +26,7 @@ namespace Nikse.SubtitleEdit.Forms
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
buttonApply.Text = Configuration.Settings.Language.General.Apply;
groupBoxRule.Text = Configuration.Settings.Language.ModifySelection.Rule;
groupBoxWhatToDo.Text = Configuration.Settings.Language.ModifySelection.DoWithMatches;
checkBoxCaseSensitive.Text = Configuration.Settings.Language.ModifySelection.CaseSensitive;
radioButtonNewSelection.Text = Configuration.Settings.Language.ModifySelection.MakeNewSelection;
radioButtonAddToSelection.Text = Configuration.Settings.Language.ModifySelection.AddToCurrentSelection;
@ -37,6 +38,16 @@ namespace Nikse.SubtitleEdit.Forms
FixLargeFonts();
if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.Contains)) //TODO: Remove in SE 3.4
{
comboBoxRule.Items.Clear();
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.Contains);
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.StartsWith);
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.EndsWith);
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.NoContains);
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.RegEx);
}
checkBoxCaseSensitive.Checked = Configuration.Settings.Tools.ModifySelectionCaseSensitive;
textBox1.Text = Configuration.Settings.Tools.ModifySelectionText;
if (Configuration.Settings.Tools.ModifySelectionRule == "Starts with")
@ -47,6 +58,8 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxRule.SelectedIndex = 3;
else if (Configuration.Settings.Tools.ModifySelectionRule == "RegEx")
comboBoxRule.SelectedIndex = 4;
else
comboBoxRule.SelectedIndex = 0;
_loading = false;
Preview();
}
@ -169,7 +182,7 @@ namespace Nikse.SubtitleEdit.Forms
if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.MatchingLinesX))
groupBoxPreview.Text = string.Format(Configuration.Settings.Language.ModifySelection.MatchingLinesX, listViewFixes.Items.Count);
else
groupBoxPreview.Text = string.Format("Matching lines: {0}", listViewFixes.Items.Count);
groupBoxPreview.Text = string.Format("Matching lines: {0}", listViewFixes.Items.Count); //TODO: Remove in 3.4
}
private void ApplySelection()

View File

@ -242,7 +242,8 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxOcrMethod.Items.Add(language.OcrViaTesseract);
comboBoxOcrMethod.Items.Add(language.OcrViaImageCompare);
comboBoxOcrMethod.Items.Add(language.OcrViaModi);
comboBoxOcrMethod.Items.Add(language.OcrViaNOCR);
if (!string.IsNullOrEmpty(language.OcrViaNOCR) && Configuration.Settings.General.ShowBetaStuff)
comboBoxOcrMethod.Items.Add(language.OcrViaNOCR);
checkBoxUseModiInTesseractForUnknownWords.Text = language.TryModiForUnknownWords;
checkBoxTesseractItalicsOn.Checked = Configuration.Settings.VobSubOcr.UseItalicsInTesseract;
@ -1170,21 +1171,59 @@ namespace Nikse.SubtitleEdit.Forms
return new Point((int)Math.Round(p.X + (height - p.Y) * _unItalicFactor), p.Y);
}
private string NOcrFindBestMatch(Bitmap bmp, out bool italic)
private string NOcrFindBestMatch(Bitmap bmp, int topMargin, out bool italic)
{
italic = false;
var nbmp = new NikseBitmap(bmp);
//nbmp.EraseColorTop(3);
//nbmp.EraseColorBottom(3);
//nbmp.CropTop(3, Color.Transparent);
//nbmp.CropSidesAndBottom(3, Color.Transparent);
foreach (NOcrChar oc in _nocrChars)
{
if (Math.Abs(oc.Width - nbmp.Width) < 3 && Math.Abs(oc.Height - nbmp.Height) < 3 && Math.Abs(oc.MarginTop - topMargin) < 3)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
}
else
{
ok = false;
break;
}
}
}
}
foreach (NOcrPoint op in oc.LinesBackground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
ok = false;
break;
}
}
}
}
if (ok)
return oc.Text;
}
}
//var nbmp = bmp;
double widthPercent = nbmp.Height * 100.0 / nbmp.Width;
foreach (NOcrChar oc in _nocrChars)
{
if (Math.Abs(oc.WidthPercent - widthPercent) < 30)
if (Math.Abs(oc.WidthPercent - widthPercent) < 10 && nbmp.Width > 25 && nbmp.Height > 20 && Math.Abs(oc.MarginTop - topMargin) < nbmp.Height / 5)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
@ -1225,60 +1264,16 @@ namespace Nikse.SubtitleEdit.Forms
}
}
foreach (NOcrChar oc in _nocrChars)
{
var w = Math.Abs(oc.WidthPercent - widthPercent);
if (w >= 30 && w < 80)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
}
else
{
ok = false;
break;
}
}
}
}
foreach (NOcrPoint op in oc.LinesBackground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
ok = false;
break;
}
}
}
}
if (ok)
return oc.Text;
}
}
if (checkBoxNOcrItalic.Checked)
if (!checkBoxNOcrCorrect.Checked)
{
foreach (NOcrChar oc in _nocrChars)
{
if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
{
foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
@ -1296,7 +1291,7 @@ namespace Nikse.SubtitleEdit.Forms
}
foreach (NOcrPoint op in oc.LinesBackground)
{
foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
@ -1310,38 +1305,23 @@ namespace Nikse.SubtitleEdit.Forms
}
}
if (ok)
{
italic = true;
return oc.Text;
}
}
}
var unItalicedBmp = UnItalic(bmp, _unItalicFactor);
nbmp = new NikseBitmap(unItalicedBmp);
unItalicedBmp.Dispose();
nbmp.CropTop(5, Color.Transparent);
nbmp.CropTransparentSidesAndBottom(0, true);
//NikseBitmap nbmp = new NikseBitmap(bmp);
// nbmp = unItalicedBmp;
//TODO:SOme cropping!!!!
foreach (NOcrChar oc in _nocrChars)
{
if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
foreach (Point point in op.GetPoints(nbmp.Width-3, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 100 && c.R > 90 && c.G > 90 && c.B > 90)
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
}
else
@ -1354,12 +1334,12 @@ namespace Nikse.SubtitleEdit.Forms
}
foreach (NOcrPoint op in oc.LinesBackground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
foreach (Point point in op.GetPoints(nbmp.Width-3, nbmp.Height))
{
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y);
if (c.A > 140 && c.R > 120 && c.G > 120 && c.B > 120)
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
ok = false;
break;
@ -1368,23 +1348,59 @@ namespace Nikse.SubtitleEdit.Forms
}
}
if (ok)
{
italic = true;
return oc.Text;
}
}
foreach (NOcrChar oc in _nocrChars)
{
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
{
bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height-4))
{
if (point.X >= 0 && point.Y+4 >= 0 && point.X < nbmp.Width && point.Y+4 < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y+4);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
}
else
{
ok = false;
break;
}
}
}
}
foreach (NOcrPoint op in oc.LinesBackground)
{
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height-4))
{
if (point.X >= 0 && point.Y+4 >= 0 && point.X < nbmp.Width && point.Y+4 < nbmp.Height)
{
Color c = nbmp.GetPixel(point.X, point.Y+4);
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
{
ok = false;
break;
}
}
}
}
if (ok)
return oc.Text;
}
}
}
// crop top / bottom - do this before all?
//nbmp.EraseColorTop(3);
//nbmp.EraseColorBottom(3);
//nbmp.CropTransparentSidesAndBottom(3);
//foreach (NOcrChar oc in _nocrChars)
//{
// if (Math.Abs(oc.Width - widthPercent) < 90)
// var w = Math.Abs(oc.WidthPercent - widthPercent);
// if (w >= 30 && w < 80)
// {
// bool ok = true;
// foreach (NOcrPoint op in oc.LinesForeground)
@ -1425,6 +1441,162 @@ namespace Nikse.SubtitleEdit.Forms
// }
//}
//if (checkBoxNOcrItalic.Checked)
//{
// foreach (NOcrChar oc in _nocrChars)
// {
// if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
// {
// bool ok = true;
// foreach (NOcrPoint op in oc.LinesForeground)
// {
// foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
// {
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
// {
// Color c = nbmp.GetPixel(point.X, point.Y);
// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
// {
// }
// else
// {
// ok = false;
// break;
// }
// }
// }
// }
// foreach (NOcrPoint op in oc.LinesBackground)
// {
// foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
// {
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
// {
// Color c = nbmp.GetPixel(point.X, point.Y);
// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
// {
// ok = false;
// break;
// }
// }
// }
// }
// if (ok)
// {
// italic = true;
// return oc.Text;
// }
// }
// }
// var unItalicedBmp = UnItalic(bmp, _unItalicFactor);
// nbmp = new NikseBitmap(unItalicedBmp);
// unItalicedBmp.Dispose();
// nbmp.CropTop(5, Color.Transparent);
// nbmp.CropTransparentSidesAndBottom(0, true);
// //NikseBitmap nbmp = new NikseBitmap(bmp);
// // nbmp = unItalicedBmp;
////TODO:SOme cropping!!!!
// foreach (NOcrChar oc in _nocrChars)
// {
// if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
// {
// bool ok = true;
// foreach (NOcrPoint op in oc.LinesForeground)
// {
// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
// {
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
// {
// Color c = nbmp.GetPixel(point.X, point.Y);
// if (c.A > 100 && c.R > 90 && c.G > 90 && c.B > 90)
// {
// }
// else
// {
// ok = false;
// break;
// }
// }
// }
// }
// foreach (NOcrPoint op in oc.LinesBackground)
// {
// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
// {
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
// {
// Color c = nbmp.GetPixel(point.X, point.Y);
// if (c.A > 140 && c.R > 120 && c.G > 120 && c.B > 120)
// {
// ok = false;
// break;
// }
// }
// }
// }
// if (ok)
// {
// italic = true;
// return oc.Text;
// }
// }
// }
//}
//// crop top / bottom - do this before all?
////nbmp.EraseColorTop(3);
////nbmp.EraseColorBottom(3);
////nbmp.CropTransparentSidesAndBottom(3);
////foreach (NOcrChar oc in _nocrChars)
////{
//// if (Math.Abs(oc.Width - widthPercent) < 90)
//// {
//// bool ok = true;
//// foreach (NOcrPoint op in oc.LinesForeground)
//// {
//// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
//// {
//// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
//// {
//// Color c = nbmp.GetPixel(point.X, point.Y);
//// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
//// {
//// }
//// else
//// {
//// ok = false;
//// break;
//// }
//// }
//// }
//// }
//// foreach (NOcrPoint op in oc.LinesBackground)
//// {
//// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
//// {
//// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
//// {
//// Color c = nbmp.GetPixel(point.X, point.Y);
//// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
//// {
//// ok = false;
//// break;
//// }
//// }
//// }
//// }
//// if (ok)
//// return oc.Text;
//// }
////}
return null;
}
@ -1433,7 +1605,7 @@ namespace Nikse.SubtitleEdit.Forms
{
secondBestGuess = null;
bool italic;
var result = NOcrFindBestMatch(targetItem.Bitmap, out italic);
var result = NOcrFindBestMatch(targetItem.Bitmap, targetItem.Y, out italic);
if (result == null)
{
if (checkBoxNOcrCorrect.Checked)
@ -2141,7 +2313,7 @@ namespace Nikse.SubtitleEdit.Forms
{
nbmp = new NikseBitmap(item.Bitmap);
nbmp.ReplaceNonWhiteWithTransparent();
nbmp.CropTopTransparent(0);
item.Y += nbmp.CropTopTransparent(0);
nbmp.CropTransparentSidesAndBottom(0, true);
nbmp.ReplaceTransparentWith(Color.Black);
item.Bitmap = nbmp.GetBitmap();

View File

@ -158,6 +158,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<ScanFolder>Scan mappe...</ScanFolder>
<ScanningFolder>Scanner {0} og undermapper for undertekster...</ScanningFolder>
<Recursive>Medtag undermapper</Recursive>
<SetMinMsBetweenSubtitles>Indstil min. msek mellem undertekster</SetMinMsBetweenSubtitles>
</BatchConvert>
<Beamer>
<Title>Undertekst fremviser</Title>
@ -320,7 +321,10 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<BorderWidth>Kantbredde</BorderWidth>
<ImageFormat>Billed format</ImageFormat>
<AntiAlias>Anti alias</AntiAlias>
<SideBySide3D>Side-by-side 3D</SideBySide3D>
<Text3D>3D</Text3D>
<SideBySide3D>Half-Side-by-side</SideBySide3D>
<HalfTopBottom3D>Half-Top/Bottom</HalfTopBottom3D>
<Depth>Dybde</Depth>
<ExportAllLines>Eksporter alle linjer...</ExportAllLines>
<XImagesSavedInY>{0} billeder gemt i {1}</XImagesSavedInY>
<VideoResolution>Video str</VideoResolution>
@ -333,6 +337,8 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<SaveVobSubAs>Vælg VobSub filnavn</SaveVobSubAs>
<SaveFabImageScriptAs>Vælg Blu-ray sup filnavn</SaveFabImageScriptAs>
<SaveDvdStudioProStlAs>Vælg DVD Studio Pro STL filnavn</SaveDvdStudioProStlAs>
<SomeLinesWereTooLongX>Nogle linjer var for lange:
{0}</SomeLinesWereTooLongX>
</ExportPngXml>
<ExportText>
<Title>Eksport tekst</Title>
@ -355,6 +361,14 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<HHMMSSFF>HH:MM:SS:FF</HHMMSSFF>
<TimeCodeSeperator>Tidskode skille-tegn</TimeCodeSeperator>
</ExportText>
<ExtractDateTimeInfo>
<Title>Generer tid som tekst</Title>
<Description>Beskrivelse</Description>
<StartFrom>Start fra</StartFrom>
<DateTimeFormat>Dato/tid format</DateTimeFormat>
<Example>Eksempel</Example>
<GenerateSubtitle>&amp;Generer undertekst</GenerateSubtitle>
</ExtractDateTimeInfo>
<FindDialog>
<Title>Find</Title>
<Find>Find</Find>
@ -583,6 +597,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<ImportOcrFromDvd>Import/OCR undertekster fra VOB/IFO (dvd) ...</ImportOcrFromDvd>
<ImportOcrVobSubSubtitle>Importer/OCR VobSub (sub/idx) undertekst...</ImportOcrVobSubSubtitle>
<ImportBluRaySupFile>Importer/OCR Blu-ray sup fil...</ImportBluRaySupFile>
<ImportXSub>Importer/OCR xsub fra divx/avi...</ImportXSub>
<ImportSubtitleFromMatroskaFile>Importer undertekster fra Matroska fil...</ImportSubtitleFromMatroskaFile>
<ImportSubtitleWithManualChosenEncoding>Importer undertekst med manuel valgt tegnsæt...</ImportSubtitleWithManualChosenEncoding>
<ImportText>Importer tekst...</ImportText>
@ -649,6 +664,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
<WordsPerMinute>Tekst - ord i minuttet (WPM)</WordsPerMinute>
<MakeNewEmptyTranslationFromCurrentSubtitle>Dan ny tom oversættelse fra aktuelle undertekst</MakeNewEmptyTranslationFromCurrentSubtitle>
<BatchConvert>Batch konverter...</BatchConvert>
<GenerateTimeAsText>Generer tid som tekst...</GenerateTimeAsText>
<SplitSubtitle>Split undertekst...</SplitSubtitle>
<AppendSubtitle>Tilføj/append undertekst...</AppendSubtitle>
<JoinSubtitles>Flet undertekster...</JoinSubtitles>
@ -1097,6 +1113,11 @@ Fortsæt?</SubtitleAppendPrompt>
<SubtractFromCurrentSelection>Subtraher fra aktuelle markering</SubtractFromCurrentSelection>
<IntersectWithCurrentSelection>Intersect med aktuelle markering</IntersectWithCurrentSelection>
<MatchingLinesX>Matchende linjer: {0}</MatchingLinesX>
<Contains>Indeholder</Contains>
<StartsWith>Starter med</StartsWith>
<EndsWith>Ender med</EndsWith>
<NoContains>Indeholder ikke</NoContains>
<RegEx>Regulært udtryk</RegEx>
</ModifySelection>
<MultipleReplace>
<Title>Multi søg og erstat</Title>

View File

@ -38,6 +38,7 @@ namespace Nikse.SubtitleEdit.Logic
public LanguageStructure.EffectTypewriter EffectTypewriter;
public LanguageStructure.ExportPngXml ExportPngXml;
public LanguageStructure.ExportText ExportText;
public LanguageStructure.ExtractDateTimeInfo ExtractDateTimeInfo;
public LanguageStructure.FindDialog FindDialog;
public LanguageStructure.FindSubtitleLine FindSubtitleLine;
public LanguageStructure.FixCommonErrors FixCommonErrors;
@ -506,6 +507,16 @@ namespace Nikse.SubtitleEdit.Logic
TimeCodeSeperator = "Time code seperator",
};
ExtractDateTimeInfo = new LanguageStructure.ExtractDateTimeInfo
{
Title = "Generate time as text",
Description = "",
StartFrom = "Start from",
DateTimeFormat = "Date/time format",
Example = "Example",
GenerateSubtitle = "&Generate subtitle",
};
FindDialog = new LanguageStructure.FindDialog
{
Title = "Find",
@ -1068,6 +1079,7 @@ namespace Nikse.SubtitleEdit.Logic
WordsPerMinute = "Text - words per minute (wpm)",
MakeNewEmptyTranslationFromCurrentSubtitle = "Make new empty translation from current subtitle",
BatchConvert = "Batch convert...",
GenerateTimeAsText = "Generate time as text...",
SplitSubtitle = "Split subtitle...",
AppendSubtitle = "Append subtitle...",
JoinSubtitles = "Join subtitles...",
@ -1314,6 +1326,11 @@ namespace Nikse.SubtitleEdit.Logic
SubtractFromCurrentSelection = "Subtract from current selection",
IntersectWithCurrentSelection = "Intersect with current selection",
MatchingLinesX = "Matching lines: {0}",
Contains = "Contains",
StartsWith = "Starts with",
EndsWith = "Ends with",
NoContains = "Not contains",
RegEx = "Regular expression",
};
MultipleReplace = new LanguageStructure.MultipleReplace

View File

@ -407,6 +407,16 @@
public string TimeCodeSeperator { get; set; }
}
public class ExtractDateTimeInfo
{
public string Title { get; set; }
public string Description { get; set; }
public string StartFrom { get; set; }
public string DateTimeFormat { get; set; }
public string Example { get; set; }
public string GenerateSubtitle { get; set; }
}
public class FindDialog
{
public string Title { get; set; }
@ -963,6 +973,7 @@
public string WordsPerMinute { get; set; }
public string MakeNewEmptyTranslationFromCurrentSubtitle { get; set; }
public string BatchConvert { get; set; }
public string GenerateTimeAsText { get; set; }
public string SplitSubtitle { get; set; }
public string AppendSubtitle { get; set; }
public string JoinSubtitles { get; set; }
@ -1221,6 +1232,11 @@
public string SubtractFromCurrentSelection { get; set; }
public string IntersectWithCurrentSelection { get; set; }
public string MatchingLinesX { get; set; }
public string Contains { get; set; }
public string StartsWith { get; set; }
public string EndsWith { get; set; }
public string NoContains { get; set; }
public string RegEx { get; set; }
}
public class MultipleReplace

View File

@ -631,7 +631,7 @@ namespace Nikse.SubtitleEdit.Logic
_bitmapData = newBitmapData;
}
public void CropTopTransparent(int maximumCropping)
public int CropTopTransparent(int maximumCropping)
{
bool done = false;
int newTop = 0;
@ -656,7 +656,7 @@ namespace Nikse.SubtitleEdit.Logic
}
if (newTop == 0)
return;
return 0;
int newHeight = Height - newTop;
var newBitmapData = new byte[Width * newHeight * 4];
@ -669,6 +669,7 @@ namespace Nikse.SubtitleEdit.Logic
}
Height = newHeight;
_bitmapData = newBitmapData;
return newTop;
}
public void Fill(Color color)