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

View File

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

View File

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

View File

@ -21,6 +21,7 @@ namespace Nikse.SubtitleEdit.Forms
timeUpDownStartTime.TimeCode = new TimeCode(0, 0, 0, 0); timeUpDownStartTime.TimeCode = new TimeCode(0, 0, 0, 0);
timeUpDownDuration.TimeCode = new TimeCode(1, 0, 0, 0); timeUpDownDuration.TimeCode = new TimeCode(1, 0, 0, 0);
comboBoxDateTimeFormats.Items.Clear(); comboBoxDateTimeFormats.Items.Clear();
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
foreach (string format in Configuration.Settings.Tools.GenerateTimeCodePatterns.Split(';')) foreach (string format in Configuration.Settings.Tools.GenerateTimeCodePatterns.Split(';'))
{ {
_formats.Add(format); _formats.Add(format);
@ -28,6 +29,18 @@ namespace Nikse.SubtitleEdit.Forms
} }
if (_formats.Count > 0) if (_formats.Count > 0)
comboBoxDateTimeFormats.SelectedIndex = 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) private string DecodeFormat(DateTime dateTime, string format)
@ -35,7 +48,7 @@ namespace Nikse.SubtitleEdit.Forms
try try
{ {
var sb = new StringBuilder(); 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)); sb.AppendLine(dateTime.ToString(s));
} }

View File

@ -1477,6 +1477,8 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemShowOriginalInPreview.Text = _language.Menu.Edit.ShowOriginalTextInAudioAndVideoPreview; toolStripMenuItemShowOriginalInPreview.Text = _language.Menu.Edit.ShowOriginalTextInAudioAndVideoPreview;
toolStripMenuItemMakeEmptyFromCurrent.Text = _language.Menu.Tools.MakeNewEmptyTranslationFromCurrentSubtitle; toolStripMenuItemMakeEmptyFromCurrent.Text = _language.Menu.Tools.MakeNewEmptyTranslationFromCurrentSubtitle;
toolStripMenuItemBatchConvert.Text = _language.Menu.Tools.BatchConvert; 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; splitToolStripMenuItem.Text = _language.Menu.Tools.SplitSubtitle;
appendTextVisuallyToolStripMenuItem.Text = _language.Menu.Tools.AppendSubtitle; appendTextVisuallyToolStripMenuItem.Text = _language.Menu.Tools.AppendSubtitle;
joinSubtitlesToolStripMenuItem.Text = _language.Menu.Tools.JoinSubtitles; joinSubtitlesToolStripMenuItem.Text = _language.Menu.Tools.JoinSubtitles;

View File

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

View File

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

View File

@ -26,6 +26,7 @@ namespace Nikse.SubtitleEdit.Forms
buttonCancel.Text = Configuration.Settings.Language.General.Cancel; buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
buttonApply.Text = Configuration.Settings.Language.General.Apply; buttonApply.Text = Configuration.Settings.Language.General.Apply;
groupBoxRule.Text = Configuration.Settings.Language.ModifySelection.Rule; groupBoxRule.Text = Configuration.Settings.Language.ModifySelection.Rule;
groupBoxWhatToDo.Text = Configuration.Settings.Language.ModifySelection.DoWithMatches;
checkBoxCaseSensitive.Text = Configuration.Settings.Language.ModifySelection.CaseSensitive; checkBoxCaseSensitive.Text = Configuration.Settings.Language.ModifySelection.CaseSensitive;
radioButtonNewSelection.Text = Configuration.Settings.Language.ModifySelection.MakeNewSelection; radioButtonNewSelection.Text = Configuration.Settings.Language.ModifySelection.MakeNewSelection;
radioButtonAddToSelection.Text = Configuration.Settings.Language.ModifySelection.AddToCurrentSelection; radioButtonAddToSelection.Text = Configuration.Settings.Language.ModifySelection.AddToCurrentSelection;
@ -37,6 +38,16 @@ namespace Nikse.SubtitleEdit.Forms
FixLargeFonts(); 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; checkBoxCaseSensitive.Checked = Configuration.Settings.Tools.ModifySelectionCaseSensitive;
textBox1.Text = Configuration.Settings.Tools.ModifySelectionText; textBox1.Text = Configuration.Settings.Tools.ModifySelectionText;
if (Configuration.Settings.Tools.ModifySelectionRule == "Starts with") if (Configuration.Settings.Tools.ModifySelectionRule == "Starts with")
@ -47,6 +58,8 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxRule.SelectedIndex = 3; comboBoxRule.SelectedIndex = 3;
else if (Configuration.Settings.Tools.ModifySelectionRule == "RegEx") else if (Configuration.Settings.Tools.ModifySelectionRule == "RegEx")
comboBoxRule.SelectedIndex = 4; comboBoxRule.SelectedIndex = 4;
else
comboBoxRule.SelectedIndex = 0;
_loading = false; _loading = false;
Preview(); Preview();
} }
@ -169,7 +182,7 @@ namespace Nikse.SubtitleEdit.Forms
if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.MatchingLinesX)) if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.MatchingLinesX))
groupBoxPreview.Text = string.Format(Configuration.Settings.Language.ModifySelection.MatchingLinesX, listViewFixes.Items.Count); groupBoxPreview.Text = string.Format(Configuration.Settings.Language.ModifySelection.MatchingLinesX, listViewFixes.Items.Count);
else 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() private void ApplySelection()

View File

@ -242,7 +242,8 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxOcrMethod.Items.Add(language.OcrViaTesseract); comboBoxOcrMethod.Items.Add(language.OcrViaTesseract);
comboBoxOcrMethod.Items.Add(language.OcrViaImageCompare); comboBoxOcrMethod.Items.Add(language.OcrViaImageCompare);
comboBoxOcrMethod.Items.Add(language.OcrViaModi); 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; checkBoxUseModiInTesseractForUnknownWords.Text = language.TryModiForUnknownWords;
checkBoxTesseractItalicsOn.Checked = Configuration.Settings.VobSubOcr.UseItalicsInTesseract; 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); 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; italic = false;
var nbmp = new NikseBitmap(bmp); var nbmp = new NikseBitmap(bmp);
//nbmp.EraseColorTop(3); foreach (NOcrChar oc in _nocrChars)
//nbmp.EraseColorBottom(3); {
//nbmp.CropTop(3, Color.Transparent); if (Math.Abs(oc.Width - nbmp.Width) < 3 && Math.Abs(oc.Height - nbmp.Height) < 3 && Math.Abs(oc.MarginTop - topMargin) < 3)
//nbmp.CropSidesAndBottom(3, Color.Transparent); {
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; double widthPercent = nbmp.Height * 100.0 / nbmp.Width;
foreach (NOcrChar oc in _nocrChars) 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; bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground) foreach (NOcrPoint op in oc.LinesForeground)
@ -1225,60 +1264,16 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
foreach (NOcrChar oc in _nocrChars) if (!checkBoxNOcrCorrect.Checked)
{
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)
{ {
foreach (NOcrChar oc in _nocrChars) 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; bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground) 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) 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 (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) 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) if (ok)
{
italic = true;
return oc.Text; 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) 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; bool ok = true;
foreach (NOcrPoint op in oc.LinesForeground) 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) if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{ {
Color c = nbmp.GetPixel(point.X, point.Y); 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 else
@ -1354,12 +1334,12 @@ namespace Nikse.SubtitleEdit.Forms
} }
foreach (NOcrPoint op in oc.LinesBackground) 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) if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
{ {
Color c = nbmp.GetPixel(point.X, point.Y); 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; ok = false;
break; break;
@ -1368,23 +1348,59 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
if (ok) if (ok)
{
italic = true;
return oc.Text; 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) //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; // bool ok = true;
// foreach (NOcrPoint op in oc.LinesForeground) // 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; return null;
} }
@ -1433,7 +1605,7 @@ namespace Nikse.SubtitleEdit.Forms
{ {
secondBestGuess = null; secondBestGuess = null;
bool italic; bool italic;
var result = NOcrFindBestMatch(targetItem.Bitmap, out italic); var result = NOcrFindBestMatch(targetItem.Bitmap, targetItem.Y, out italic);
if (result == null) if (result == null)
{ {
if (checkBoxNOcrCorrect.Checked) if (checkBoxNOcrCorrect.Checked)
@ -2141,7 +2313,7 @@ namespace Nikse.SubtitleEdit.Forms
{ {
nbmp = new NikseBitmap(item.Bitmap); nbmp = new NikseBitmap(item.Bitmap);
nbmp.ReplaceNonWhiteWithTransparent(); nbmp.ReplaceNonWhiteWithTransparent();
nbmp.CropTopTransparent(0); item.Y += nbmp.CropTopTransparent(0);
nbmp.CropTransparentSidesAndBottom(0, true); nbmp.CropTransparentSidesAndBottom(0, true);
nbmp.ReplaceTransparentWith(Color.Black); nbmp.ReplaceTransparentWith(Color.Black);
item.Bitmap = nbmp.GetBitmap(); item.Bitmap = nbmp.GetBitmap();

View File

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

View File

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

View File

@ -407,6 +407,16 @@
public string TimeCodeSeperator { get; set; } 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 class FindDialog
{ {
public string Title { get; set; } public string Title { get; set; }
@ -963,6 +973,7 @@
public string WordsPerMinute { get; set; } public string WordsPerMinute { get; set; }
public string MakeNewEmptyTranslationFromCurrentSubtitle { get; set; } public string MakeNewEmptyTranslationFromCurrentSubtitle { get; set; }
public string BatchConvert { get; set; } public string BatchConvert { get; set; }
public string GenerateTimeAsText { get; set; }
public string SplitSubtitle { get; set; } public string SplitSubtitle { get; set; }
public string AppendSubtitle { get; set; } public string AppendSubtitle { get; set; }
public string JoinSubtitles { get; set; } public string JoinSubtitles { get; set; }
@ -1221,6 +1232,11 @@
public string SubtractFromCurrentSelection { get; set; } public string SubtractFromCurrentSelection { get; set; }
public string IntersectWithCurrentSelection { get; set; } public string IntersectWithCurrentSelection { get; set; }
public string MatchingLinesX { 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 public class MultipleReplace

View File

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