Default only if word-split-list on non-propercase words - thx JP :)

This commit is contained in:
niksedk 2022-12-24 14:32:19 +01:00
parent 0cb0e0035e
commit 9be405fba3
8 changed files with 49 additions and 9 deletions

View File

@ -2348,6 +2348,7 @@ can edit in same subtitle file (collaboration)</Information>
<MusicSymbolsReplace>Music symbols to replace (separate by comma)</MusicSymbolsReplace>
<FixCommonOcrErrorsUseHardcodedRules>Fix common OCR errors - also use hard-coded rules</FixCommonOcrErrorsUseHardcodedRules>
<UseWordSplitList>Use word split list (OCR + FCE)</UseWordSplitList>
<AvoidPropercase>Avoid propercase</AvoidPropercase>
<FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime>Fix short display time - allow move of start time</FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime>
<FixCommonErrorsSkipStepOne>Skip step one (choose fix rules)</FixCommonErrorsSkipStepOne>
<DefaultFormat>Default format</DefaultFormat>

View File

@ -141,6 +141,7 @@ namespace Nikse.SubtitleEdit.Core.Common
public string OcrTrainMergedLetters { get; set; }
public string OcrTrainSrtFile { get; set; }
public bool OcrUseWordSplitList { get; set; }
public bool OcrUseWordSplitListAvoidPropercase { get; set; }
public string BDOpenIn { get; set; }
public string Interjections { get; set; }
public string MicrosoftBingApiId { get; set; }
@ -450,6 +451,7 @@ namespace Nikse.SubtitleEdit.Core.Common
OcrTrainFonts = "Arial;Calibri;Corbel;Futura Std Book;Futura Bis;Helvetica Neue;Lucida Console;Tahoma;Trebuchet MS;Verdana";
OcrTrainMergedLetters = "ff ft fi fj fy fl rf rt rv rw ry rt rz ryt tt TV tw yt yw wy wf ryt xy";
OcrUseWordSplitList = true;
OcrUseWordSplitListAvoidPropercase = true;
Interjections = "Ah;Ahem;Ahh;Ahhh;Ahhhh;Eh;Ehh;Ehhh;Hm;Hmm;Hmmm;Huh;Mm;Mmm;Mmmm;Phew;Gah;Oh;Ohh;Ohhh;Ow;Oww;Owww;Ugh;Ughh;Uh;Uhh;Uhhh;Whew";
MicrosoftTranslatorTokenEndpoint = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
GoogleTranslateNoKeyWarningShow = true;
@ -4575,6 +4577,12 @@ $HorzAlign = Center
settings.Tools.OcrUseWordSplitList = Convert.ToBoolean(subNode.InnerText, CultureInfo.InvariantCulture);
}
subNode = node.SelectSingleNode("OcrUseWordSplitListAvoidPropercase");
if (subNode != null)
{
settings.Tools.OcrUseWordSplitListAvoidPropercase = Convert.ToBoolean(subNode.InnerText, CultureInfo.InvariantCulture);
}
subNode = node.SelectSingleNode("BDOpenIn");
if (subNode != null)
{
@ -10223,6 +10231,7 @@ $HorzAlign = Center
textWriter.WriteElementString("OcrTrainMergedLetters", settings.Tools.OcrTrainMergedLetters);
textWriter.WriteElementString("OcrTrainSrtFile", settings.Tools.OcrTrainSrtFile);
textWriter.WriteElementString("OcrUseWordSplitList", settings.Tools.OcrUseWordSplitList.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("OcrUseWordSplitListAvoidPropercase", settings.Tools.OcrUseWordSplitListAvoidPropercase.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("BDOpenIn", settings.Tools.BDOpenIn);
textWriter.WriteElementString("Interjections", settings.Tools.Interjections);
textWriter.WriteElementString("MicrosoftBingApiId", settings.Tools.MicrosoftBingApiId);

View File

@ -45,6 +45,15 @@ namespace Nikse.SubtitleEdit.Core.Dictionaries
return input;
}
if (Configuration.Settings.Tools.OcrUseWordSplitListAvoidPropercase && input.Length > 1 &&
input.StartsWith(input[0].ToString().ToUpperInvariant()) &&
input != input.ToLowerInvariant() && input != input.ToUpperInvariant() &&
input.Length < 12)
{
//TODO: Improve... some better way to detect uncommon/special names
return input;
}
for (var i = 0; i < words.Length; i++)
{
var w = words[i];

View File

@ -414,6 +414,7 @@
this.labelUpdateFileTypeAssociationsStatus = new System.Windows.Forms.Label();
this.imageListFileTypeAssociations = new System.Windows.Forms.ImageList(this.components);
this.toolTipDialogStylePreview = new System.Windows.Forms.ToolTip(this.components);
this.checkBoxUseWordSplitListAvoidPropercase = new System.Windows.Forms.CheckBox();
this.panelGeneral.SuspendLayout();
this.groupBoxMiscellaneous.SuspendLayout();
this.groupBoxGeneralRules.SuspendLayout();
@ -3532,9 +3533,9 @@
this.groupBoxSpellCheck.Controls.Add(this.checkBoxTreatINQuoteAsING);
this.groupBoxSpellCheck.Controls.Add(this.checkBoxSpellCheckOneLetterWords);
this.groupBoxSpellCheck.Controls.Add(this.checkBoxSpellCheckAutoChangeNames);
this.groupBoxSpellCheck.Location = new System.Drawing.Point(0, 381);
this.groupBoxSpellCheck.Location = new System.Drawing.Point(0, 389);
this.groupBoxSpellCheck.Name = "groupBoxSpellCheck";
this.groupBoxSpellCheck.Size = new System.Drawing.Size(408, 139);
this.groupBoxSpellCheck.Size = new System.Drawing.Size(408, 131);
this.groupBoxSpellCheck.TabIndex = 4;
this.groupBoxSpellCheck.TabStop = false;
this.groupBoxSpellCheck.Text = "Spell check";
@ -3591,6 +3592,7 @@
//
// groupBoxFixCommonErrors
//
this.groupBoxFixCommonErrors.Controls.Add(this.checkBoxUseWordSplitListAvoidPropercase);
this.groupBoxFixCommonErrors.Controls.Add(this.checkBoxUseWordSplitList);
this.groupBoxFixCommonErrors.Controls.Add(this.buttonFixContinuationStyleSettings);
this.groupBoxFixCommonErrors.Controls.Add(this.checkBoxFceSkipStep1);
@ -3602,7 +3604,7 @@
this.groupBoxFixCommonErrors.Controls.Add(this.labelToolsMusicSymbol);
this.groupBoxFixCommonErrors.Location = new System.Drawing.Point(0, 123);
this.groupBoxFixCommonErrors.Name = "groupBoxFixCommonErrors";
this.groupBoxFixCommonErrors.Size = new System.Drawing.Size(408, 252);
this.groupBoxFixCommonErrors.Size = new System.Drawing.Size(408, 260);
this.groupBoxFixCommonErrors.TabIndex = 3;
this.groupBoxFixCommonErrors.TabStop = false;
this.groupBoxFixCommonErrors.Text = "Fix common errors";
@ -3610,7 +3612,7 @@
// checkBoxUseWordSplitList
//
this.checkBoxUseWordSplitList.AutoSize = true;
this.checkBoxUseWordSplitList.Location = new System.Drawing.Point(15, 137);
this.checkBoxUseWordSplitList.Location = new System.Drawing.Point(15, 125);
this.checkBoxUseWordSplitList.Name = "checkBoxUseWordSplitList";
this.checkBoxUseWordSplitList.Size = new System.Drawing.Size(231, 17);
this.checkBoxUseWordSplitList.TabIndex = 3;
@ -3619,7 +3621,7 @@
//
// buttonFixContinuationStyleSettings
//
this.buttonFixContinuationStyleSettings.Location = new System.Drawing.Point(16, 212);
this.buttonFixContinuationStyleSettings.Location = new System.Drawing.Point(16, 220);
this.buttonFixContinuationStyleSettings.Name = "buttonFixContinuationStyleSettings";
this.buttonFixContinuationStyleSettings.Size = new System.Drawing.Size(271, 23);
this.buttonFixContinuationStyleSettings.TabIndex = 6;
@ -3630,7 +3632,7 @@
// checkBoxFceSkipStep1
//
this.checkBoxFceSkipStep1.AutoSize = true;
this.checkBoxFceSkipStep1.Location = new System.Drawing.Point(15, 185);
this.checkBoxFceSkipStep1.Location = new System.Drawing.Point(15, 193);
this.checkBoxFceSkipStep1.Name = "checkBoxFceSkipStep1";
this.checkBoxFceSkipStep1.Size = new System.Drawing.Size(176, 17);
this.checkBoxFceSkipStep1.TabIndex = 5;
@ -3640,7 +3642,7 @@
// checkBoxFixShortDisplayTimesAllowMoveStartTime
//
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.AutoSize = true;
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.Location = new System.Drawing.Point(15, 162);
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.Location = new System.Drawing.Point(15, 170);
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.Name = "checkBoxFixShortDisplayTimesAllowMoveStartTime";
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.Size = new System.Drawing.Size(252, 17);
this.checkBoxFixShortDisplayTimesAllowMoveStartTime.TabIndex = 4;
@ -3650,7 +3652,7 @@
// checkBoxFixCommonOcrErrorsUsingHardcodedRules
//
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.AutoSize = true;
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Location = new System.Drawing.Point(15, 115);
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Location = new System.Drawing.Point(15, 103);
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Name = "checkBoxFixCommonOcrErrorsUsingHardcodedRules";
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Size = new System.Drawing.Size(268, 17);
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.TabIndex = 2;
@ -4971,18 +4973,28 @@
this.toolTipDialogStylePreview.InitialDelay = 500;
this.toolTipDialogStylePreview.ReshowDelay = 100;
//
// checkBoxUseWordSplitListAvoidPropercase
//
this.checkBoxUseWordSplitListAvoidPropercase.AutoSize = true;
this.checkBoxUseWordSplitListAvoidPropercase.Location = new System.Drawing.Point(34, 146);
this.checkBoxUseWordSplitListAvoidPropercase.Name = "checkBoxUseWordSplitListAvoidPropercase";
this.checkBoxUseWordSplitListAvoidPropercase.Size = new System.Drawing.Size(102, 17);
this.checkBoxUseWordSplitListAvoidPropercase.TabIndex = 35;
this.checkBoxUseWordSplitListAvoidPropercase.Text = "Skip propercase";
this.checkBoxUseWordSplitListAvoidPropercase.UseVisualStyleBackColor = true;
//
// Settings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1092, 574);
this.Controls.Add(this.labelUpdateFileTypeAssociationsStatus);
this.Controls.Add(this.panelTools);
this.Controls.Add(this.panelGeneral);
this.Controls.Add(this.panelFont);
this.Controls.Add(this.panelToolBar);
this.Controls.Add(this.panelNetwork);
this.Controls.Add(this.panelWaveform);
this.Controls.Add(this.panelTools);
this.Controls.Add(this.panelFileTypeAssociations);
this.Controls.Add(this.panelShortcuts);
this.Controls.Add(this.panelSubtitleFormats);
@ -5494,5 +5506,6 @@
private System.Windows.Forms.Button buttonTranslationAutoSuffix;
private System.Windows.Forms.ComboBox comboBoxTranslationAutoSuffix;
private System.Windows.Forms.Label labelTranslationAutoSuffix;
private System.Windows.Forms.CheckBox checkBoxUseWordSplitListAvoidPropercase;
}
}

View File

@ -737,6 +737,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
labelToolsMusicSymbolsToReplace.Text = language.MusicSymbolsReplace;
checkBoxFixCommonOcrErrorsUsingHardcodedRules.Text = language.FixCommonOcrErrorsUseHardcodedRules;
checkBoxUseWordSplitList.Text = language.UseWordSplitList;
checkBoxUseWordSplitListAvoidPropercase.Text = language.AvoidPropercase;
checkBoxFixShortDisplayTimesAllowMoveStartTime.Text = language.FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime;
checkBoxFceSkipStep1.Text = language.FixCommonErrorsSkipStepOne;
groupBoxSpellCheck.Text = language.SpellCheck;
@ -954,6 +955,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
textBoxMusicSymbolsToReplace.Text = toolsSettings.MusicSymbolReplace;
checkBoxFixCommonOcrErrorsUsingHardcodedRules.Checked = toolsSettings.OcrFixUseHardcodedRules;
checkBoxUseWordSplitList.Checked = toolsSettings.OcrUseWordSplitList;
checkBoxUseWordSplitListAvoidPropercase.Checked = toolsSettings.OcrUseWordSplitListAvoidPropercase;
checkBoxFixShortDisplayTimesAllowMoveStartTime.Checked = toolsSettings.FixShortDisplayTimesAllowMoveStartTime;
checkBoxFceSkipStep1.Checked = toolsSettings.FixCommonErrorsSkipStepOne;
checkBoxSpellCheckAutoChangeNames.Checked = toolsSettings.SpellCheckAutoChangeNameCasing;
@ -2016,6 +2018,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
toolsSettings.OcrFixUseHardcodedRules = checkBoxFixCommonOcrErrorsUsingHardcodedRules.Checked;
toolsSettings.OcrUseWordSplitList = checkBoxUseWordSplitList.Checked;
toolsSettings.OcrUseWordSplitListAvoidPropercase = checkBoxUseWordSplitListAvoidPropercase.Checked;
toolsSettings.FixShortDisplayTimesAllowMoveStartTime = checkBoxFixShortDisplayTimesAllowMoveStartTime.Checked;
toolsSettings.FixCommonErrorsSkipStepOne = checkBoxFceSkipStep1.Checked;
toolsSettings.MicrosoftTranslatorApiKey = textBoxBingClientSecret.Text.Trim();

View File

@ -2680,6 +2680,7 @@ can edit in same subtitle file (collaboration)",
MusicSymbolsReplace = "Music symbols to replace (separate by comma)",
FixCommonOcrErrorsUseHardcodedRules = "Fix common OCR errors - also use hard-coded rules",
UseWordSplitList = "Use word split list (OCR + FCE)",
AvoidPropercase = "Avoid propercase",
FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime = "Fix short display time - allow move of start time",
FixCommonErrorsSkipStepOne = "Skip step one (choose fix rules)",
DefaultFormat = "Default format",

View File

@ -6391,6 +6391,9 @@ namespace Nikse.SubtitleEdit.Logic
case "Settings/UseWordSplitList":
language.Settings.UseWordSplitList = reader.Value;
break;
case "Settings/AvoidPropercase":
language.Settings.AvoidPropercase = reader.Value;
break;
case "Settings/FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime":
language.Settings.FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime = reader.Value;
break;

View File

@ -2531,6 +2531,7 @@ namespace Nikse.SubtitleEdit.Logic
public string MusicSymbolsReplace { get; set; }
public string FixCommonOcrErrorsUseHardcodedRules { get; set; }
public string UseWordSplitList { get; set; }
public string AvoidPropercase { get; set; }
public string FixCommonerrorsFixShortDisplayTimesAllowMoveStartTime { get; set; }
public string FixCommonErrorsSkipStepOne { get; set; }