Merge pull request #8557 from ivandrofly/settings-to

Split Settings to multiple files
This commit is contained in:
Nikolaj Olsson 2024-06-23 07:46:33 +02:00 committed by GitHub
commit e519c6322a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
53 changed files with 3350 additions and 3234 deletions

View File

@ -8,6 +8,7 @@ using System.Net.Http.Headers;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Core.AutoTranslate
{

View File

@ -9,6 +9,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Core.AutoTranslate
{

View File

@ -8,6 +8,7 @@ using System.Net.Http.Headers;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Core.AutoTranslate
{

View File

@ -8,6 +8,7 @@ using System.Net.Http.Headers;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Core.AutoTranslate
{

View File

@ -13,7 +13,7 @@ namespace Nikse.SubtitleEdit.Core.Common
{
private static readonly Lazy<Configuration> Instance = new Lazy<Configuration>(() => new Configuration());
private readonly Lazy<Settings> _settings;
private readonly Lazy<Settings.Settings> _settings;
private readonly IEnumerable<Encoding> _encodings;
public static readonly string BaseDirectory = GetBaseDirectory();
@ -59,7 +59,7 @@ namespace Nikse.SubtitleEdit.Core.Common
private Configuration()
{
_encodings = GetAvailableEncodings();
_settings = new Lazy<Settings>(Settings.GetSettings);
_settings = new Lazy<Settings.Settings>(Core.Settings.Settings.GetSettings);
}
private const int PlatformWindows = 1;
@ -113,7 +113,7 @@ namespace Nikse.SubtitleEdit.Core.Common
: PlatformWindows;
}
public static Settings Settings => Instance.Value._settings.Value;
public static Settings.Settings Settings => Instance.Value._settings.Value;
public static IEnumerable<Encoding> AvailableEncodings => Instance.Value._encodings;

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Core.SubtitleFormats;
namespace Nikse.SubtitleEdit.Core.Forms

View File

@ -2,6 +2,7 @@
using System.Net;
using System.Net.Http;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Core.Http
{

View File

@ -0,0 +1,12 @@
using System.Collections.Generic;
using Nikse.SubtitleEdit.Core.Common;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class AssaStorageCategory
{
public string Name { get; set; }
public bool IsDefault { get; set; }
public List<SsaStyle> Styles { get; set; }
}
}

View File

@ -0,0 +1,220 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class BeautifyTimeCodesSettings
{
public bool AlignTimeCodes { get; set; }
public bool ExtractExactTimeCodes { get; set; }
public bool SnapToShotChanges { get; set; }
public int OverlapThreshold { get; set; }
public BeautifyTimeCodesProfile Profile { get; set; }
public BeautifyTimeCodesSettings()
{
AlignTimeCodes = true;
ExtractExactTimeCodes = false;
SnapToShotChanges = true;
OverlapThreshold = 1000;
Profile = new BeautifyTimeCodesProfile();
}
public class BeautifyTimeCodesProfile
{
// General
public int Gap { get; set; }
// In cues
public int InCuesGap { get; set; }
public int InCuesLeftGreenZone { get; set; }
public int InCuesLeftRedZone { get; set; }
public int InCuesRightRedZone { get; set; }
public int InCuesRightGreenZone { get; set; }
// Out cues
public int OutCuesGap { get; set; }
public int OutCuesLeftGreenZone { get; set; }
public int OutCuesLeftRedZone { get; set; }
public int OutCuesRightRedZone { get; set; }
public int OutCuesRightGreenZone { get; set; }
// Connected subtitles
public int ConnectedSubtitlesInCueClosestLeftGap { get; set; }
public int ConnectedSubtitlesInCueClosestRightGap { get; set; }
public int ConnectedSubtitlesOutCueClosestLeftGap { get; set; }
public int ConnectedSubtitlesOutCueClosestRightGap { get; set; }
public int ConnectedSubtitlesLeftGreenZone { get; set; }
public int ConnectedSubtitlesLeftRedZone { get; set; }
public int ConnectedSubtitlesRightRedZone { get; set; }
public int ConnectedSubtitlesRightGreenZone { get; set; }
public int ConnectedSubtitlesTreatConnected { get; set; }
// Chaining
public bool ChainingGeneralUseZones { get; set; }
public int ChainingGeneralMaxGap { get; set; }
public int ChainingGeneralLeftGreenZone { get; set; }
public int ChainingGeneralLeftRedZone { get; set; }
public ChainingShotChangeBehaviorEnum ChainingGeneralShotChangeBehavior { get; set; }
public bool ChainingInCueOnShotUseZones { get; set; }
public int ChainingInCueOnShotMaxGap { get; set; }
public int ChainingInCueOnShotLeftGreenZone { get; set; }
public int ChainingInCueOnShotLeftRedZone { get; set; }
public ChainingShotChangeBehaviorEnum ChainingInCueOnShotShotChangeBehavior { get; set; }
public bool ChainingInCueOnShotCheckGeneral { get; set; }
public bool ChainingOutCueOnShotUseZones { get; set; }
public int ChainingOutCueOnShotMaxGap { get; set; }
public int ChainingOutCueOnShotRightRedZone { get; set; }
public int ChainingOutCueOnShotRightGreenZone { get; set; }
public ChainingShotChangeBehaviorEnum ChainingOutCueOnShotShotChangeBehavior { get; set; }
public bool ChainingOutCueOnShotCheckGeneral { get; set; }
public enum Preset : int
{
Default = 0,
Netflix = 1,
SDI = 2,
}
public enum ChainingShotChangeBehaviorEnum : int
{
DontChain = 0,
ExtendCrossingShotChange = 1,
ExtendUntilShotChange = 2
}
public BeautifyTimeCodesProfile(Preset preset = Preset.Default)
{
switch (preset)
{
case Preset.Netflix:
Gap = 2;
InCuesGap = 0;
InCuesLeftGreenZone = 12;
InCuesLeftRedZone = 7;
InCuesRightRedZone = 7;
InCuesRightGreenZone = 12;
OutCuesGap = 2;
OutCuesLeftGreenZone = 12;
OutCuesLeftRedZone = 7;
OutCuesRightRedZone = 7;
OutCuesRightGreenZone = 12;
ConnectedSubtitlesInCueClosestLeftGap = 2;
ConnectedSubtitlesInCueClosestRightGap = 0;
ConnectedSubtitlesOutCueClosestLeftGap = 2;
ConnectedSubtitlesOutCueClosestRightGap = 0;
ConnectedSubtitlesLeftGreenZone = 12;
ConnectedSubtitlesLeftRedZone = 7;
ConnectedSubtitlesRightRedZone = 7;
ConnectedSubtitlesRightGreenZone = 12;
ConnectedSubtitlesTreatConnected = 180;
ChainingGeneralUseZones = false;
ChainingGeneralMaxGap = 500;
ChainingGeneralLeftGreenZone = 12;
ChainingGeneralLeftRedZone = 11;
ChainingGeneralShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingInCueOnShotUseZones = false;
ChainingInCueOnShotMaxGap = 500;
ChainingInCueOnShotLeftGreenZone = 12;
ChainingInCueOnShotLeftRedZone = 11;
ChainingInCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingInCueOnShotCheckGeneral = true;
ChainingOutCueOnShotUseZones = false;
ChainingOutCueOnShotMaxGap = 500;
ChainingOutCueOnShotRightRedZone = 11;
ChainingOutCueOnShotRightGreenZone = 12;
ChainingOutCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingOutCueOnShotCheckGeneral = true;
break;
case Preset.SDI:
Gap = 4;
InCuesGap = 2;
InCuesLeftGreenZone = 12;
InCuesLeftRedZone = 7;
InCuesRightRedZone = 7;
InCuesRightGreenZone = 12;
OutCuesGap = 2;
OutCuesLeftGreenZone = 12;
OutCuesLeftRedZone = 7;
OutCuesRightRedZone = 7;
OutCuesRightGreenZone = 12;
ConnectedSubtitlesInCueClosestLeftGap = 2;
ConnectedSubtitlesInCueClosestRightGap = 2;
ConnectedSubtitlesOutCueClosestLeftGap = 2;
ConnectedSubtitlesOutCueClosestRightGap = 2;
ConnectedSubtitlesLeftGreenZone = 12;
ConnectedSubtitlesLeftRedZone = 7;
ConnectedSubtitlesRightRedZone = 7;
ConnectedSubtitlesRightGreenZone = 12;
ConnectedSubtitlesTreatConnected = 240;
ChainingGeneralUseZones = false;
ChainingGeneralMaxGap = 1000;
ChainingGeneralLeftGreenZone = 25;
ChainingGeneralLeftRedZone = 24;
ChainingGeneralShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendCrossingShotChange;
ChainingInCueOnShotUseZones = false;
ChainingInCueOnShotMaxGap = 1000;
ChainingInCueOnShotLeftGreenZone = 25;
ChainingInCueOnShotLeftRedZone = 24;
ChainingInCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendCrossingShotChange;
ChainingInCueOnShotCheckGeneral = true;
ChainingOutCueOnShotUseZones = true;
ChainingOutCueOnShotMaxGap = 500;
ChainingOutCueOnShotRightRedZone = 7;
ChainingOutCueOnShotRightGreenZone = 12;
ChainingOutCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendCrossingShotChange;
ChainingOutCueOnShotCheckGeneral = true;
break;
default:
Gap = 3;
InCuesGap = 0;
InCuesLeftGreenZone = 3;
InCuesLeftRedZone = 3;
InCuesRightRedZone = 5;
InCuesRightGreenZone = 5;
OutCuesGap = 0;
OutCuesLeftGreenZone = 10;
OutCuesLeftRedZone = 10;
OutCuesRightRedZone = 3;
OutCuesRightGreenZone = 12;
ConnectedSubtitlesInCueClosestLeftGap = 3;
ConnectedSubtitlesInCueClosestRightGap = 0;
ConnectedSubtitlesOutCueClosestLeftGap = 0;
ConnectedSubtitlesOutCueClosestRightGap = 3;
ConnectedSubtitlesLeftGreenZone = 3;
ConnectedSubtitlesLeftRedZone = 3;
ConnectedSubtitlesRightRedZone = 3;
ConnectedSubtitlesRightGreenZone = 3;
ConnectedSubtitlesTreatConnected = 180;
ChainingGeneralUseZones = false;
ChainingGeneralMaxGap = 1000;
ChainingGeneralLeftGreenZone = 25;
ChainingGeneralLeftRedZone = 24;
ChainingGeneralShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingInCueOnShotUseZones = false;
ChainingInCueOnShotMaxGap = 1000;
ChainingInCueOnShotLeftGreenZone = 25;
ChainingInCueOnShotLeftRedZone = 24;
ChainingInCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingInCueOnShotCheckGeneral = true;
ChainingOutCueOnShotUseZones = false;
ChainingOutCueOnShotMaxGap = 500;
ChainingOutCueOnShotRightRedZone = 11;
ChainingOutCueOnShotRightGreenZone = 12;
ChainingOutCueOnShotShotChangeBehavior = ChainingShotChangeBehaviorEnum.ExtendUntilShotChange;
ChainingOutCueOnShotCheckGeneral = true;
break;
}
}
}
}
}

View File

@ -0,0 +1,16 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class CompareSettings
{
public bool ShowOnlyDifferences { get; set; }
public bool OnlyLookForDifferenceInText { get; set; }
public bool IgnoreLineBreaks { get; set; }
public bool IgnoreWhitespace { get; set; }
public bool IgnoreFormatting { get; set; }
public CompareSettings()
{
OnlyLookForDifferenceInText = true;
}
}
}

View File

@ -0,0 +1,22 @@
using System.Drawing;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class FcpExportSettings
{
public string FontName { get; set; }
public int FontSize { get; set; }
public string Alignment { get; set; }
public int Baseline { get; set; }
public Color Color { get; set; }
public FcpExportSettings()
{
FontName = "Lucida Sans";
FontSize = 36;
Alignment = "center";
Baseline = 29;
Color = Color.WhiteSmoke;
}
}
}

View File

@ -0,0 +1,340 @@
using System.Linq;
using System.Text;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class FixCommonErrorsSettings
{
public string StartPosition { get; set; }
public string StartSize { get; set; }
public bool EmptyLinesTicked { get; set; }
public bool OverlappingDisplayTimeTicked { get; set; }
public bool TooShortDisplayTimeTicked { get; set; }
public bool TooLongDisplayTimeTicked { get; set; }
public bool TooShortGapTicked { get; set; }
public bool InvalidItalicTagsTicked { get; set; }
public bool BreakLongLinesTicked { get; set; }
public bool MergeShortLinesTicked { get; set; }
public bool MergeShortLinesAllTicked { get; set; }
public bool MergeShortLinesPixelWidthTicked { get; set; }
public bool UnneededSpacesTicked { get; set; }
public bool UnneededPeriodsTicked { get; set; }
public bool FixCommasTicked { get; set; }
public bool MissingSpacesTicked { get; set; }
public bool AddMissingQuotesTicked { get; set; }
public bool Fix3PlusLinesTicked { get; set; }
public bool FixHyphensTicked { get; set; }
public bool FixHyphensRemoveSingleLineTicked { get; set; }
public bool UppercaseIInsideLowercaseWordTicked { get; set; }
public bool DoubleApostropheToQuoteTicked { get; set; }
public bool AddPeriodAfterParagraphTicked { get; set; }
public bool StartWithUppercaseLetterAfterParagraphTicked { get; set; }
public bool StartWithUppercaseLetterAfterPeriodInsideParagraphTicked { get; set; }
public bool StartWithUppercaseLetterAfterColonTicked { get; set; }
public bool AloneLowercaseIToUppercaseIEnglishTicked { get; set; }
public bool FixOcrErrorsViaReplaceListTicked { get; set; }
public bool RemoveSpaceBetweenNumberTicked { get; set; }
public bool FixDialogsOnOneLineTicked { get; set; }
public bool RemoveDialogFirstLineInNonDialogs { get; set; }
public bool TurkishAnsiTicked { get; set; }
public bool DanishLetterITicked { get; set; }
public bool SpanishInvertedQuestionAndExclamationMarksTicked { get; set; }
public bool FixDoubleDashTicked { get; set; }
public bool FixDoubleGreaterThanTicked { get; set; }
public bool FixEllipsesStartTicked { get; set; }
public bool FixMissingOpenBracketTicked { get; set; }
public bool FixMusicNotationTicked { get; set; }
public bool FixContinuationStyleTicked { get; set; }
public bool FixUnnecessaryLeadingDotsTicked { get; set; }
public bool NormalizeStringsTicked { get; set; }
public string DefaultFixes { get; set; }
public FixCommonErrorsSettings()
{
SetDefaultFixes();
}
public void SaveUserDefaultFixes()
{
var sb = new StringBuilder();
if (EmptyLinesTicked)
{
sb.Append(nameof(EmptyLinesTicked) + ";");
}
if (OverlappingDisplayTimeTicked)
{
sb.Append(nameof(OverlappingDisplayTimeTicked) + ";");
}
if (TooShortDisplayTimeTicked)
{
sb.Append(nameof(TooShortDisplayTimeTicked) + ";");
}
if (TooLongDisplayTimeTicked)
{
sb.Append(nameof(TooLongDisplayTimeTicked) + ";");
}
if (TooShortGapTicked)
{
sb.Append(nameof(TooShortGapTicked) + ";");
}
if (InvalidItalicTagsTicked)
{
sb.Append(nameof(InvalidItalicTagsTicked) + ";");
}
if (BreakLongLinesTicked)
{
sb.Append(nameof(BreakLongLinesTicked) + ";");
}
if (MergeShortLinesTicked)
{
sb.Append(nameof(MergeShortLinesTicked) + ";");
}
if (MergeShortLinesAllTicked)
{
sb.Append(nameof(MergeShortLinesAllTicked) + ";");
}
if (MergeShortLinesPixelWidthTicked)
{
sb.Append(nameof(MergeShortLinesPixelWidthTicked) + ";");
}
if (UnneededSpacesTicked)
{
sb.Append(nameof(UnneededSpacesTicked) + ";");
}
if (UnneededPeriodsTicked)
{
sb.Append(nameof(UnneededPeriodsTicked) + ";");
}
if (FixCommasTicked)
{
sb.Append(nameof(FixCommasTicked) + ";");
}
if (MissingSpacesTicked)
{
sb.Append(nameof(MissingSpacesTicked) + ";");
}
if (AddMissingQuotesTicked)
{
sb.Append(nameof(AddMissingQuotesTicked) + ";");
}
if (Fix3PlusLinesTicked)
{
sb.Append(nameof(Fix3PlusLinesTicked) + ";");
}
if (FixHyphensTicked)
{
sb.Append(nameof(FixHyphensTicked) + ";");
}
if (FixHyphensRemoveSingleLineTicked)
{
sb.Append(nameof(FixHyphensRemoveSingleLineTicked) + ";");
}
if (UppercaseIInsideLowercaseWordTicked)
{
sb.Append(nameof(UppercaseIInsideLowercaseWordTicked) + ";");
}
if (DoubleApostropheToQuoteTicked)
{
sb.Append(nameof(DoubleApostropheToQuoteTicked) + ";");
}
if (AddPeriodAfterParagraphTicked)
{
sb.Append(nameof(AddPeriodAfterParagraphTicked) + ";");
}
if (StartWithUppercaseLetterAfterParagraphTicked)
{
sb.Append(nameof(StartWithUppercaseLetterAfterParagraphTicked) + ";");
}
if (StartWithUppercaseLetterAfterPeriodInsideParagraphTicked)
{
sb.Append(nameof(StartWithUppercaseLetterAfterPeriodInsideParagraphTicked) + ";");
}
if (StartWithUppercaseLetterAfterColonTicked)
{
sb.Append(nameof(StartWithUppercaseLetterAfterColonTicked) + ";");
}
if (AloneLowercaseIToUppercaseIEnglishTicked)
{
sb.Append(nameof(AloneLowercaseIToUppercaseIEnglishTicked) + ";");
}
if (FixOcrErrorsViaReplaceListTicked)
{
sb.Append(nameof(FixOcrErrorsViaReplaceListTicked) + ";");
}
if (RemoveSpaceBetweenNumberTicked)
{
sb.Append(nameof(RemoveSpaceBetweenNumberTicked) + ";");
}
if (FixDialogsOnOneLineTicked)
{
sb.Append(nameof(FixDialogsOnOneLineTicked) + ";");
}
if (RemoveDialogFirstLineInNonDialogs)
{
sb.Append(nameof(RemoveDialogFirstLineInNonDialogs) + ";");
}
if (TurkishAnsiTicked)
{
sb.Append(nameof(TurkishAnsiTicked) + ";");
}
if (DanishLetterITicked)
{
sb.Append(nameof(DanishLetterITicked) + ";");
}
if (SpanishInvertedQuestionAndExclamationMarksTicked)
{
sb.Append(nameof(SpanishInvertedQuestionAndExclamationMarksTicked) + ";");
}
if (FixDoubleDashTicked)
{
sb.Append(nameof(FixDoubleDashTicked) + ";");
}
if (FixEllipsesStartTicked)
{
sb.Append(nameof(FixEllipsesStartTicked) + ";");
}
if (FixMissingOpenBracketTicked)
{
sb.Append(nameof(FixMissingOpenBracketTicked) + ";");
}
if (FixMusicNotationTicked)
{
sb.Append(nameof(FixMusicNotationTicked) + ";");
}
if (FixContinuationStyleTicked)
{
sb.Append(nameof(FixContinuationStyleTicked) + ";");
}
if (FixUnnecessaryLeadingDotsTicked)
{
sb.Append(nameof(FixUnnecessaryLeadingDotsTicked) + ";");
}
if (NormalizeStringsTicked)
{
sb.Append(nameof(NormalizeStringsTicked) + ";");
}
DefaultFixes = sb.ToString().TrimEnd(';');
}
public void LoadUserDefaultFixes(string fixes)
{
var list = fixes.Split(';');
EmptyLinesTicked = list.Contains(nameof(EmptyLinesTicked));
OverlappingDisplayTimeTicked = list.Contains(nameof(OverlappingDisplayTimeTicked));
TooShortDisplayTimeTicked = list.Contains(nameof(TooShortDisplayTimeTicked));
TooLongDisplayTimeTicked = list.Contains(nameof(TooLongDisplayTimeTicked));
TooShortGapTicked = list.Contains(nameof(TooShortGapTicked));
InvalidItalicTagsTicked = list.Contains(nameof(InvalidItalicTagsTicked));
BreakLongLinesTicked = list.Contains(nameof(BreakLongLinesTicked));
MergeShortLinesTicked = list.Contains(nameof(MergeShortLinesTicked));
MergeShortLinesAllTicked = list.Contains(nameof(MergeShortLinesAllTicked));
MergeShortLinesPixelWidthTicked = list.Contains(nameof(MergeShortLinesPixelWidthTicked));
UnneededSpacesTicked = list.Contains(nameof(UnneededSpacesTicked));
UnneededPeriodsTicked = list.Contains(nameof(UnneededPeriodsTicked));
FixCommasTicked = list.Contains(nameof(FixCommasTicked));
MissingSpacesTicked = list.Contains(nameof(MissingSpacesTicked));
AddMissingQuotesTicked = list.Contains(nameof(AddMissingQuotesTicked));
Fix3PlusLinesTicked = list.Contains(nameof(Fix3PlusLinesTicked));
FixHyphensTicked = list.Contains(nameof(FixHyphensTicked));
FixHyphensRemoveSingleLineTicked = list.Contains(nameof(FixHyphensRemoveSingleLineTicked));
UppercaseIInsideLowercaseWordTicked = list.Contains(nameof(UppercaseIInsideLowercaseWordTicked));
DoubleApostropheToQuoteTicked = list.Contains(nameof(DoubleApostropheToQuoteTicked));
AddPeriodAfterParagraphTicked = list.Contains(nameof(AddPeriodAfterParagraphTicked));
StartWithUppercaseLetterAfterParagraphTicked = list.Contains(nameof(StartWithUppercaseLetterAfterParagraphTicked));
StartWithUppercaseLetterAfterPeriodInsideParagraphTicked = list.Contains(nameof(StartWithUppercaseLetterAfterPeriodInsideParagraphTicked));
StartWithUppercaseLetterAfterColonTicked = list.Contains(nameof(StartWithUppercaseLetterAfterColonTicked));
AloneLowercaseIToUppercaseIEnglishTicked = list.Contains(nameof(AloneLowercaseIToUppercaseIEnglishTicked));
FixOcrErrorsViaReplaceListTicked = list.Contains(nameof(FixOcrErrorsViaReplaceListTicked));
RemoveSpaceBetweenNumberTicked = list.Contains(nameof(RemoveSpaceBetweenNumberTicked));
FixDialogsOnOneLineTicked = list.Contains(nameof(FixDialogsOnOneLineTicked));
RemoveDialogFirstLineInNonDialogs = list.Contains(nameof(RemoveDialogFirstLineInNonDialogs));
TurkishAnsiTicked = list.Contains(nameof(TurkishAnsiTicked));
DanishLetterITicked = list.Contains(nameof(DanishLetterITicked));
SpanishInvertedQuestionAndExclamationMarksTicked = list.Contains(nameof(SpanishInvertedQuestionAndExclamationMarksTicked));
FixDoubleDashTicked = list.Contains(nameof(FixDoubleDashTicked));
FixEllipsesStartTicked = list.Contains(nameof(FixEllipsesStartTicked));
FixMissingOpenBracketTicked = list.Contains(nameof(FixMissingOpenBracketTicked));
FixMusicNotationTicked = list.Contains(nameof(FixMusicNotationTicked));
FixContinuationStyleTicked = list.Contains(nameof(FixContinuationStyleTicked));
FixUnnecessaryLeadingDotsTicked = list.Contains(nameof(FixUnnecessaryLeadingDotsTicked));
NormalizeStringsTicked = list.Contains(nameof(NormalizeStringsTicked));
}
public void SetDefaultFixes()
{
LoadUserDefaultFixes(string.Empty);
EmptyLinesTicked = true;
OverlappingDisplayTimeTicked = true;
TooShortDisplayTimeTicked = true;
TooLongDisplayTimeTicked = true;
TooShortGapTicked = false;
InvalidItalicTagsTicked = true;
BreakLongLinesTicked = true;
MergeShortLinesTicked = true;
MergeShortLinesPixelWidthTicked = false;
UnneededPeriodsTicked = true;
FixCommasTicked = true;
UnneededSpacesTicked = true;
MissingSpacesTicked = true;
UppercaseIInsideLowercaseWordTicked = true;
DoubleApostropheToQuoteTicked = true;
AddPeriodAfterParagraphTicked = false;
StartWithUppercaseLetterAfterParagraphTicked = true;
StartWithUppercaseLetterAfterPeriodInsideParagraphTicked = false;
StartWithUppercaseLetterAfterColonTicked = false;
AloneLowercaseIToUppercaseIEnglishTicked = false;
TurkishAnsiTicked = false;
DanishLetterITicked = false;
FixDoubleDashTicked = true;
FixDoubleGreaterThanTicked = true;
FixEllipsesStartTicked = true;
FixMissingOpenBracketTicked = true;
FixMusicNotationTicked = true;
FixContinuationStyleTicked = false;
FixUnnecessaryLeadingDotsTicked = true;
NormalizeStringsTicked = false;
SaveUserDefaultFixes();
}
}
}

View File

@ -0,0 +1,836 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Common.TextLengthCalculator;
using Nikse.SubtitleEdit.Core.Enums;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class GeneralSettings
{
public List<RulesProfile> Profiles { get; set; }
public string CurrentProfile { get; set; }
public bool ShowToolbarNew { get; set; }
public bool ShowToolbarOpen { get; set; }
public bool ShowToolbarOpenVideo { get; set; }
public bool ShowToolbarSave { get; set; }
public bool ShowToolbarSaveAs { get; set; }
public bool ShowToolbarFind { get; set; }
public bool ShowToolbarReplace { get; set; }
public bool ShowToolbarFixCommonErrors { get; set; }
public bool ShowToolbarRemoveTextForHi { get; set; }
public bool ShowToolbarToggleSourceView { get; set; }
public bool ShowToolbarVisualSync { get; set; }
public bool ShowToolbarBurnIn { get; set; }
public bool ShowToolbarSpellCheck { get; set; }
public bool ShowToolbarNetflixGlyphCheck { get; set; }
public bool ShowToolbarBeautifyTimeCodes { get; set; }
public bool ShowToolbarSettings { get; set; }
public bool ShowToolbarHelp { get; set; }
public int LayoutNumber { get; set; }
public string LayoutSizes { get; set; }
public bool ShowVideoPlayer { get; set; }
public bool ShowAudioVisualizer { get; set; }
public bool ShowWaveform { get; set; }
public bool ShowSpectrogram { get; set; }
public bool ShowFrameRate { get; set; }
public bool ShowVideoControls { get; set; }
public bool TextAndOrigianlTextBoxesSwitched { get; set; }
public double DefaultFrameRate { get; set; }
public double CurrentFrameRate { get; set; }
public string DefaultSubtitleFormat { get; set; }
public string DefaultSaveAsFormat { get; set; }
public string FavoriteSubtitleFormats { get; set; }
public string DefaultEncoding { get; set; }
public bool AutoConvertToUtf8 { get; set; }
public bool AutoGuessAnsiEncoding { get; set; }
public string TranslationAutoSuffixes { get; set; }
public string TranslationAutoSuffixDefault { get; set; }
public string SystemSubtitleFontNameOverride { get; set; }
public int SystemSubtitleFontSizeOverride { get; set; }
public string SubtitleFontName { get; set; }
public int SubtitleTextBoxFontSize { get; set; }
public bool SubtitleTextBoxSyntaxColor { get; set; }
public Color SubtitleTextBoxHtmlColor { get; set; }
public Color SubtitleTextBoxAssColor { get; set; }
public int SubtitleListViewFontSize { get; set; }
public bool SubtitleTextBoxFontBold { get; set; }
public bool SubtitleListViewFontBold { get; set; }
public Color SubtitleFontColor { get; set; }
public Color SubtitleBackgroundColor { get; set; }
public string MeasureFontName { get; set; }
public int MeasureFontSize { get; set; }
public bool MeasureFontBold { get; set; }
public int SubtitleLineMaximumPixelWidth { get; set; }
public bool CenterSubtitleInTextBox { get; set; }
public bool ShowRecentFiles { get; set; }
public bool RememberSelectedLine { get; set; }
public bool StartLoadLastFile { get; set; }
public bool StartRememberPositionAndSize { get; set; }
public string StartPosition { get; set; }
public string StartSize { get; set; }
public bool StartInSourceView { get; set; }
public bool RemoveBlankLinesWhenOpening { get; set; }
public bool RemoveBadCharsWhenOpening { get; set; }
public int SubtitleLineMaximumLength { get; set; }
public int MaxNumberOfLines { get; set; }
public int MaxNumberOfLinesPlusAbort { get; set; }
public int MergeLinesShorterThan { get; set; }
public int SubtitleMinimumDisplayMilliseconds { get; set; }
public int SubtitleMaximumDisplayMilliseconds { get; set; }
public int MinimumMillisecondsBetweenLines { get; set; }
public int SetStartEndHumanDelay { get; set; }
public bool AutoWrapLineWhileTyping { get; set; }
public double SubtitleMaximumCharactersPerSeconds { get; set; }
public double SubtitleOptimalCharactersPerSeconds { get; set; }
public string CpsLineLengthStrategy { get; set; }
public double SubtitleMaximumWordsPerMinute { get; set; }
public DialogType DialogStyle { get; set; }
public ContinuationStyle ContinuationStyle { get; set; }
public int ContinuationPause { get; set; }
public string CustomContinuationStyleSuffix { get; set; }
public bool CustomContinuationStyleSuffixApplyIfComma { get; set; }
public bool CustomContinuationStyleSuffixAddSpace { get; set; }
public bool CustomContinuationStyleSuffixReplaceComma { get; set; }
public string CustomContinuationStylePrefix { get; set; }
public bool CustomContinuationStylePrefixAddSpace { get; set; }
public bool CustomContinuationStyleUseDifferentStyleGap { get; set; }
public string CustomContinuationStyleGapSuffix { get; set; }
public bool CustomContinuationStyleGapSuffixApplyIfComma { get; set; }
public bool CustomContinuationStyleGapSuffixAddSpace { get; set; }
public bool CustomContinuationStyleGapSuffixReplaceComma { get; set; }
public string CustomContinuationStyleGapPrefix { get; set; }
public bool CustomContinuationStyleGapPrefixAddSpace { get; set; }
public bool FixContinuationStyleUncheckInsertsAllCaps { get; set; }
public bool FixContinuationStyleUncheckInsertsItalic { get; set; }
public bool FixContinuationStyleUncheckInsertsLowercase { get; set; }
public bool FixContinuationStyleHideContinuationCandidatesWithoutName { get; set; }
public bool FixContinuationStyleIgnoreLyrics { get; set; }
public string SpellCheckLanguage { get; set; }
public string VideoPlayer { get; set; }
public int VideoPlayerDefaultVolume { get; set; }
public string VideoPlayerPreviewFontName { get; set; }
public int VideoPlayerPreviewFontSize { get; set; }
public bool VideoPlayerPreviewFontBold { get; set; }
public bool VideoPlayerShowStopButton { get; set; }
public bool VideoPlayerShowFullscreenButton { get; set; }
public bool VideoPlayerShowMuteButton { get; set; }
public string Language { get; set; }
public string ListViewLineSeparatorString { get; set; }
public int ListViewDoubleClickAction { get; set; }
public string SaveAsUseFileNameFrom { get; set; }
public string UppercaseLetters { get; set; }
public int DefaultAdjustMilliseconds { get; set; }
public bool AutoRepeatOn { get; set; }
public int AutoRepeatCount { get; set; }
public bool AutoContinueOn { get; set; }
public int AutoContinueDelay { get; set; }
public bool ReturnToStartAfterRepeat { get; set; }
public bool SyncListViewWithVideoWhilePlaying { get; set; }
public int AutoBackupSeconds { get; set; }
public int AutoBackupDeleteAfterMonths { get; set; }
public string SpellChecker { get; set; }
public bool AllowEditOfOriginalSubtitle { get; set; }
public bool PromptDeleteLines { get; set; }
public bool Undocked { get; set; }
public string UndockedVideoPosition { get; set; }
public bool UndockedVideoFullscreen { get; set; }
public string UndockedWaveformPosition { get; set; }
public string UndockedVideoControlsPosition { get; set; }
public bool WaveformCenter { get; set; }
public bool WaveformAutoGenWhenOpeningVideo { get; set; }
public int WaveformUpdateIntervalMs { get; set; }
public int SmallDelayMilliseconds { get; set; }
public int LargeDelayMilliseconds { get; set; }
public bool ShowOriginalAsPreviewIfAvailable { get; set; }
public int LastPacCodePage { get; set; }
public string OpenSubtitleExtraExtensions { get; set; }
public bool ListViewColumnsRememberSize { get; set; }
public int ListViewNumberWidth { get; set; }
public int ListViewStartWidth { get; set; }
public int ListViewEndWidth { get; set; }
public int ListViewDurationWidth { get; set; }
public int ListViewCpsWidth { get; set; }
public int ListViewWpmWidth { get; set; }
public int ListViewGapWidth { get; set; }
public int ListViewActorWidth { get; set; }
public int ListViewRegionWidth { get; set; }
public int ListViewTextWidth { get; set; }
public int ListViewNumberDisplayIndex { get; set; } = -1;
public int ListViewStartDisplayIndex { get; set; } = -1;
public int ListViewEndDisplayIndex { get; set; } = -1;
public int ListViewDurationDisplayIndex { get; set; } = -1;
public int ListViewCpsDisplayIndex { get; set; } = -1;
public int ListViewWpmDisplayIndex { get; set; } = -1;
public int ListViewGapDisplayIndex { get; set; } = -1;
public int ListViewActorDisplayIndex { get; set; } = -1;
public int ListViewRegionDisplayIndex { get; set; } = -1;
public int ListViewTextDisplayIndex { get; set; } = -1;
public bool DirectShowDoubleLoad { get; set; }
public string VlcWaveTranscodeSettings { get; set; }
public string VlcLocation { get; set; }
public string VlcLocationRelative { get; set; }
public string MpvVideoOutputWindows { get; set; }
public string MpvVideoOutputLinux { get; set; }
public string MpvVideoVf { get; set; }
public string MpvVideoAf { get; set; }
public string MpvExtraOptions { get; set; }
public bool MpvLogging { get; set; }
public bool MpvHandlesPreviewText { get; set; }
public Color MpvPreviewTextPrimaryColor { get; set; }
public Color MpvPreviewTextOutlineColor { get; set; }
public Color MpvPreviewTextBackgroundColor { get; set; }
public decimal MpvPreviewTextOutlineWidth { get; set; }
public decimal MpvPreviewTextShadowWidth { get; set; }
public bool MpvPreviewTextOpaqueBox { get; set; }
public string MpvPreviewTextOpaqueBoxStyle { get; set; }
public string MpvPreviewTextAlignment { get; set; }
public int MpvPreviewTextMarginVertical { get; set; }
public string MpcHcLocation { get; set; }
public string MkvMergeLocation { get; set; }
public bool UseFFmpegForWaveExtraction { get; set; }
public bool FFmpegUseCenterChannelOnly { get; set; }
public string FFmpegLocation { get; set; }
public string FFmpegSceneThreshold { get; set; }
public bool UseTimeFormatHHMMSSFF { get; set; }
public int SplitBehavior { get; set; }
public bool SplitRemovesDashes { get; set; }
public int ClearStatusBarAfterSeconds { get; set; }
public string Company { get; set; }
public bool MoveVideo100Or500MsPlaySmallSample { get; set; }
public bool DisableVideoAutoLoading { get; set; }
public bool DisableShowingLoadErrors { get; set; }
public bool AllowVolumeBoost { get; set; }
public int NewEmptyDefaultMs { get; set; }
public bool NewEmptyUseAutoDuration { get; set; }
public bool RightToLeftMode { get; set; }
public string LastSaveAsFormat { get; set; }
public bool CheckForUpdates { get; set; }
public DateTime LastCheckForUpdates { get; set; }
public bool AutoSave { get; set; }
public string PreviewAssaText { get; set; }
public string TagsInToggleHiTags { get; set; }
public string TagsInToggleCustomTags { get; set; }
public bool ShowProgress { get; set; }
public bool ShowNegativeDurationInfoOnSave { get; set; }
public bool ShowFormatRequiresUtf8Warning { get; set; }
public long DefaultVideoOffsetInMs { get; set; }
public string DefaultVideoOffsetInMsList { get; set; }
public long CurrentVideoOffsetInMs { get; set; }
public bool CurrentVideoIsSmpte { get; set; }
public bool AutoSetVideoSmpteForTtml { get; set; }
public bool AutoSetVideoSmpteForTtmlPrompt { get; set; }
public string TitleBarAsterisk { get; set; } // Show asteriks "before" or "after" file name (any other value will hide asteriks)
public bool TitleBarFullFileName { get; set; } // Show full file name with path or just file name
public bool MeasurementConverterCloseOnInsert { get; set; }
public string MeasurementConverterCategories { get; set; }
public bool SubtitleTextBoxAutoVerticalScrollBars { get; set; }
public int SubtitleTextBoxMaxHeight { get; set; }
public bool AllowLetterShortcutsInTextBox { get; set; }
public Color DarkThemeForeColor { get; set; }
public Color DarkThemeBackColor { get; set; }
public Color DarkThemeSelectedBackgroundColor { get; set; }
public Color DarkThemeDisabledColor { get; set; }
public Color LastColorPickerColor { get; set; }
public Color LastColorPickerColor1 { get; set; }
public Color LastColorPickerColor2 { get; set; }
public Color LastColorPickerColor3 { get; set; }
public Color LastColorPickerColor4 { get; set; }
public Color LastColorPickerColor5 { get; set; }
public Color LastColorPickerColor6 { get; set; }
public Color LastColorPickerColor7 { get; set; }
public Color LastColorPickerDropper { get; set; }
public string ToolbarIconTheme { get; set; }
public bool UseDarkTheme { get; set; }
public bool DarkThemeShowListViewGridLines { get; set; }
public bool ShowBetaStuff { get; set; }
public bool DebugTranslationSync { get; set; }
public bool UseLegacyDownloader { get; set; }
public bool UseLegacyHtmlColor { get; set; } = true;
public string DefaultLanguages { get; set; }
public GeneralSettings()
{
ShowToolbarNew = true;
ShowToolbarOpen = true;
ShowToolbarSave = true;
ShowToolbarSaveAs = false;
ShowToolbarFind = true;
ShowToolbarReplace = true;
ShowToolbarFixCommonErrors = false;
ShowToolbarVisualSync = true;
ShowToolbarSpellCheck = true;
ShowToolbarNetflixGlyphCheck = true;
ShowToolbarBeautifyTimeCodes = false;
ShowToolbarSettings = true;
ShowToolbarHelp = true;
ShowToolbarToggleSourceView = false;
ShowVideoPlayer = true;
ShowAudioVisualizer = true;
ShowWaveform = true;
ShowSpectrogram = true;
ShowFrameRate = false;
ShowVideoControls = true;
DefaultFrameRate = 23.976;
CurrentFrameRate = DefaultFrameRate;
SubtitleFontName = "Tahoma";
SubtitleTextBoxFontSize = 12;
SubtitleListViewFontSize = 10;
SubtitleTextBoxSyntaxColor = false;
SubtitleTextBoxHtmlColor = Color.CornflowerBlue;
SubtitleTextBoxAssColor = Color.BlueViolet;
SubtitleTextBoxFontBold = true;
SubtitleFontColor = Color.Black;
MeasureFontName = "Arial";
MeasureFontSize = 24;
MeasureFontBold = false;
SubtitleLineMaximumPixelWidth = 576;
SubtitleBackgroundColor = Color.White;
CenterSubtitleInTextBox = false;
DefaultSubtitleFormat = "SubRip";
DefaultEncoding = TextEncoding.Utf8WithBom;
AutoConvertToUtf8 = false;
AutoGuessAnsiEncoding = true;
TranslationAutoSuffixes = ";.translation;_translation;.en;_en";
TranslationAutoSuffixDefault = "<Auto>";
ShowRecentFiles = true;
RememberSelectedLine = true;
StartLoadLastFile = true;
StartRememberPositionAndSize = true;
SubtitleLineMaximumLength = 43;
MaxNumberOfLines = 2;
MaxNumberOfLinesPlusAbort = 1;
MergeLinesShorterThan = 33;
SubtitleMinimumDisplayMilliseconds = 1000;
SubtitleMaximumDisplayMilliseconds = 8 * 1000;
RemoveBadCharsWhenOpening = true;
MinimumMillisecondsBetweenLines = 24;
SetStartEndHumanDelay = 100;
AutoWrapLineWhileTyping = false;
SubtitleMaximumCharactersPerSeconds = 25.0;
SubtitleOptimalCharactersPerSeconds = 15.0;
SubtitleMaximumWordsPerMinute = 400;
DialogStyle = DialogType.DashBothLinesWithSpace;
ContinuationStyle = ContinuationStyle.None;
ContinuationPause = 300;
CustomContinuationStyleSuffix = "";
CustomContinuationStyleSuffixApplyIfComma = false;
CustomContinuationStyleSuffixAddSpace = false;
CustomContinuationStyleSuffixReplaceComma = false;
CustomContinuationStylePrefix = "";
CustomContinuationStylePrefixAddSpace = false;
CustomContinuationStyleUseDifferentStyleGap = true;
CustomContinuationStyleGapSuffix = "...";
CustomContinuationStyleGapSuffixApplyIfComma = true;
CustomContinuationStyleGapSuffixAddSpace = false;
CustomContinuationStyleGapSuffixReplaceComma = true;
CustomContinuationStyleGapPrefix = "...";
CustomContinuationStyleGapPrefixAddSpace = false;
FixContinuationStyleUncheckInsertsAllCaps = true;
FixContinuationStyleUncheckInsertsItalic = true;
FixContinuationStyleUncheckInsertsLowercase = true;
FixContinuationStyleHideContinuationCandidatesWithoutName = true;
FixContinuationStyleIgnoreLyrics = true;
SpellCheckLanguage = null;
VideoPlayer = string.Empty;
VideoPlayerDefaultVolume = 75;
VideoPlayerPreviewFontName = "Tahoma";
VideoPlayerPreviewFontSize = 12;
VideoPlayerPreviewFontBold = true;
VideoPlayerShowStopButton = true;
VideoPlayerShowMuteButton = true;
VideoPlayerShowFullscreenButton = true;
ListViewLineSeparatorString = "<br />";
ListViewDoubleClickAction = 1;
SaveAsUseFileNameFrom = "video";
UppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWZYXÆØÃÅÄÖÉÈÁÂÀÇÊÍÓÔÕÚŁАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯĞİŞÜÙÁÌÑÎΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ";
DefaultAdjustMilliseconds = 1000;
AutoRepeatOn = true;
AutoRepeatCount = 2;
AutoContinueOn = false;
AutoContinueDelay = 2;
ReturnToStartAfterRepeat = false;
SyncListViewWithVideoWhilePlaying = false;
AutoBackupSeconds = 60 * 5;
AutoBackupDeleteAfterMonths = 3;
SpellChecker = "hunspell";
AllowEditOfOriginalSubtitle = true;
PromptDeleteLines = true;
Undocked = false;
UndockedVideoPosition = "-32000;-32000";
UndockedWaveformPosition = "-32000;-32000";
UndockedVideoControlsPosition = "-32000;-32000";
WaveformUpdateIntervalMs = 40;
SmallDelayMilliseconds = 500;
LargeDelayMilliseconds = 5000;
OpenSubtitleExtraExtensions = "*.mp4;*.m4v;*.mkv;*.ts"; // matroska/mp4/m4v files (can contain subtitles)
ListViewColumnsRememberSize = true;
DirectShowDoubleLoad = true;
VlcWaveTranscodeSettings = "acodec=s16l"; // "acodec=s16l,channels=1,ab=64,samplerate=8000";
MpvVideoOutputWindows = string.Empty; // could also be e.g. "gpu" or "directshow"
MpvVideoOutputLinux = "x11"; // could also be e.g. "x11";
MpvHandlesPreviewText = true;
MpvPreviewTextPrimaryColor = Color.White;
MpvPreviewTextOutlineColor = Color.Black;
MpvPreviewTextBackgroundColor = Color.Black;
MpvPreviewTextOutlineWidth = 1;
MpvPreviewTextShadowWidth = 1;
MpvPreviewTextOpaqueBox = false;
MpvPreviewTextOpaqueBoxStyle = "1";
MpvPreviewTextAlignment = "2";
MpvPreviewTextMarginVertical = 10;
FFmpegSceneThreshold = "0.4"; // threshold for generating shot changes - 0.2 is sensitive (more shot changes), 0.6 is less sensitive (fewer shot changes)
UseTimeFormatHHMMSSFF = false;
SplitBehavior = 1; // 0=take gap from left, 1=divide evenly, 2=take gap from right
SplitRemovesDashes = true;
ClearStatusBarAfterSeconds = 10;
MoveVideo100Or500MsPlaySmallSample = false;
DisableVideoAutoLoading = false;
NewEmptyUseAutoDuration = true;
RightToLeftMode = false;
LastSaveAsFormat = string.Empty;
SystemSubtitleFontNameOverride = string.Empty;
CheckForUpdates = true;
LastCheckForUpdates = DateTime.Now;
ShowProgress = false;
ShowNegativeDurationInfoOnSave = true;
ShowFormatRequiresUtf8Warning = true;
DefaultVideoOffsetInMs = 10 * 60 * 60 * 1000;
DefaultVideoOffsetInMsList = "36000000;3600000";
DarkThemeForeColor = Color.FromArgb(155, 155, 155);
DarkThemeBackColor = Color.FromArgb(30, 30, 30);
DarkThemeSelectedBackgroundColor = Color.FromArgb(24, 52, 75);
DarkThemeDisabledColor = Color.FromArgb(120, 120, 120);
LastColorPickerColor = Color.Yellow;
LastColorPickerColor1 = Color.Red;
LastColorPickerColor2 = Color.Green;
LastColorPickerColor3 = Color.Blue;
LastColorPickerColor4 = Color.White;
LastColorPickerColor5 = Color.Black;
LastColorPickerColor6 = Color.Cyan;
LastColorPickerColor7 = Color.DarkOrange;
LastColorPickerDropper = Color.Transparent;
ToolbarIconTheme = "Auto";
UseDarkTheme = false;
DarkThemeShowListViewGridLines = false;
AutoSetVideoSmpteForTtml = true;
AutoSetVideoSmpteForTtmlPrompt = true;
TitleBarAsterisk = "before";
MeasurementConverterCloseOnInsert = true;
MeasurementConverterCategories = "Length;Kilometers;Meters";
PreviewAssaText = "ABCDEFGHIJKL abcdefghijkl 123";
TagsInToggleHiTags = "[;]";
TagsInToggleCustomTags = "(Æ)";
SubtitleTextBoxMaxHeight = 300;
ShowBetaStuff = false;
DebugTranslationSync = false;
NewEmptyDefaultMs = 2000;
DialogStyle = DialogType.DashBothLinesWithSpace;
ContinuationStyle = ContinuationStyle.None;
if (Configuration.IsRunningOnLinux)
{
SubtitleFontName = Configuration.DefaultLinuxFontName;
VideoPlayerPreviewFontName = Configuration.DefaultLinuxFontName;
}
Profiles = new List<RulesProfile>();
CurrentProfile = "Default";
Profiles.Add(new RulesProfile
{
Name = CurrentProfile,
SubtitleLineMaximumLength = SubtitleLineMaximumLength,
MaxNumberOfLines = MaxNumberOfLines,
MergeLinesShorterThan = MergeLinesShorterThan,
SubtitleMaximumCharactersPerSeconds = (decimal)SubtitleMaximumCharactersPerSeconds,
SubtitleOptimalCharactersPerSeconds = (decimal)SubtitleOptimalCharactersPerSeconds,
SubtitleMaximumDisplayMilliseconds = SubtitleMaximumDisplayMilliseconds,
SubtitleMinimumDisplayMilliseconds = SubtitleMinimumDisplayMilliseconds,
SubtitleMaximumWordsPerMinute = (decimal)SubtitleMaximumWordsPerMinute,
CpsLineLengthStrategy = CpsLineLengthStrategy,
MinimumMillisecondsBetweenLines = MinimumMillisecondsBetweenLines,
DialogStyle = DialogStyle,
ContinuationStyle = ContinuationStyle
});
AddExtraProfiles(Profiles);
}
internal static void AddExtraProfiles(List<RulesProfile> profiles)
{
profiles.Add(new RulesProfile
{
Name = "Netflix (English)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 20,
SubtitleOptimalCharactersPerSeconds = 15,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 833,
SubtitleMaximumWordsPerMinute = 240,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithoutSpace,
ContinuationStyle = ContinuationStyle.NoneLeadingTrailingEllipsis
});
profiles.Add(new RulesProfile
{
Name = "Netflix (Other languages)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 17,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 833,
SubtitleMaximumWordsPerMinute = 204,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.NoneLeadingTrailingEllipsis
});
profiles.Add(new RulesProfile
{
Name = "Netflix (Dutch)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 17,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 833,
SubtitleMaximumWordsPerMinute = 204,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashSecondLineWithoutSpace,
ContinuationStyle = ContinuationStyle.LeadingTrailingEllipsis
});
profiles.Add(new RulesProfile
{
Name = "Netflix (Simplified Chinese)",
SubtitleLineMaximumLength = 16,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 17,
SubtitleMaximumCharactersPerSeconds = 9,
SubtitleOptimalCharactersPerSeconds = 9,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 833,
SubtitleMaximumWordsPerMinute = 100,
CpsLineLengthStrategy = "CalcAll",
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithoutSpace,
ContinuationStyle = ContinuationStyle.LeadingTrailingEllipsis
});
profiles.Add(new RulesProfile
{
Name = "Amazon Prime (English/Spanish/French)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 17,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1000,
SubtitleMaximumWordsPerMinute = 204,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.NoneLeadingTrailingEllipsis,
});
profiles.Add(new RulesProfile
{
Name = "Amazon Prime (Arabic)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 20,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1000,
SubtitleMaximumWordsPerMinute = 240,
CpsLineLengthStrategy = typeof(CalcAll).Name,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.NoneLeadingTrailingEllipsis,
});
profiles.Add(new RulesProfile
{
Name = "Amazon Prime (Danish)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 17,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1000,
SubtitleMaximumWordsPerMinute = 204,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashBothLinesWithoutSpace,
ContinuationStyle = ContinuationStyle.NoneLeadingTrailingEllipsis,
});
profiles.Add(new RulesProfile
{
Name = "Amazon Prime (Dutch)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 17,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1000,
SubtitleMaximumWordsPerMinute = 204,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 83, // 2 frames for 23.976 fps videos
DialogStyle = DialogType.DashSecondLineWithoutSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingEllipsis,
});
profiles.Add(new RulesProfile
{
Name = "TikTok/YouTube-shorts (9:16)",
SubtitleLineMaximumLength = 24,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 0,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5000,
SubtitleMinimumDisplayMilliseconds = 700,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 0,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "Arte (German/English)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 20,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 10000,
SubtitleMinimumDisplayMilliseconds = 1000,
SubtitleMaximumWordsPerMinute = 240,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 200, // 5 frames for 25 fps videos
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "Dutch professional subtitles (23.976/24 fps)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 15,
SubtitleOptimalCharactersPerSeconds = 11,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1400,
SubtitleMaximumWordsPerMinute = 180,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 125,
DialogStyle = DialogType.DashSecondLineWithoutSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingDots
});
profiles.Add(new RulesProfile
{
Name = "Dutch professional subtitles (25 fps)",
SubtitleLineMaximumLength = 42,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 43,
SubtitleMaximumCharactersPerSeconds = 15,
SubtitleOptimalCharactersPerSeconds = 11,
SubtitleMaximumDisplayMilliseconds = 7000,
SubtitleMinimumDisplayMilliseconds = 1400,
SubtitleMaximumWordsPerMinute = 180,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 120,
DialogStyle = DialogType.DashSecondLineWithoutSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingDots
});
profiles.Add(new RulesProfile
{
Name = "Dutch fansubs (23.976/24 fps)",
SubtitleLineMaximumLength = 45,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 46,
SubtitleMaximumCharactersPerSeconds = 22.5m,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7007,
SubtitleMinimumDisplayMilliseconds = 1200,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 125,
DialogStyle = DialogType.DashSecondLineWithSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingDots
});
profiles.Add(new RulesProfile
{
Name = "Dutch fansubs (25 fps)",
SubtitleLineMaximumLength = 45,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 46,
SubtitleMaximumCharactersPerSeconds = 22.5m,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7000,
SubtitleMinimumDisplayMilliseconds = 1200,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 120,
DialogStyle = DialogType.DashSecondLineWithSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingDots
});
profiles.Add(new RulesProfile
{
Name = "Danish professional subtitles (23.976/24 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 15,
SubtitleOptimalCharactersPerSeconds = 10,
SubtitleMaximumDisplayMilliseconds = 8008,
SubtitleMinimumDisplayMilliseconds = 2002,
SubtitleMaximumWordsPerMinute = 180,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 125,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.LeadingTrailingDashDots
});
profiles.Add(new RulesProfile
{
Name = "Danish professional subtitles (25 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 15,
SubtitleOptimalCharactersPerSeconds = 10,
SubtitleMaximumDisplayMilliseconds = 8000,
SubtitleMinimumDisplayMilliseconds = 2000,
SubtitleMaximumWordsPerMinute = 180,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 120,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.LeadingTrailingDashDots
});
profiles.Add(new RulesProfile
{
Name = "SDI (Dutch)",
SubtitleLineMaximumLength = 37,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 38,
SubtitleMaximumCharactersPerSeconds = 18.75m,
SubtitleOptimalCharactersPerSeconds = 12,
SubtitleMaximumDisplayMilliseconds = 7000,
SubtitleMinimumDisplayMilliseconds = 1320,
SubtitleMaximumWordsPerMinute = 225,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 160,
DialogStyle = DialogType.DashSecondLineWithoutSpace,
ContinuationStyle = ContinuationStyle.OnlyTrailingDots
});
profiles.Add(new RulesProfile
{
Name = "SW2 (French) (23.976/24 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5005,
SubtitleMinimumDisplayMilliseconds = 792,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 125,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "SW2 (French) (25 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5000,
SubtitleMinimumDisplayMilliseconds = 800,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 120,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "SW3 (French) (23.976/24 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5005,
SubtitleMinimumDisplayMilliseconds = 792,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 167,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "SW3 (French) (25 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5000,
SubtitleMinimumDisplayMilliseconds = 800,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 160,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "SW4 (French) (23.976/24 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5005,
SubtitleMinimumDisplayMilliseconds = 792,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 250,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
profiles.Add(new RulesProfile
{
Name = "SW4 (French) (25 fps)",
SubtitleLineMaximumLength = 40,
MaxNumberOfLines = 2,
MergeLinesShorterThan = 41,
SubtitleMaximumCharactersPerSeconds = 25,
SubtitleOptimalCharactersPerSeconds = 18,
SubtitleMaximumDisplayMilliseconds = 5000,
SubtitleMinimumDisplayMilliseconds = 800,
SubtitleMaximumWordsPerMinute = 300,
CpsLineLengthStrategy = string.Empty,
MinimumMillisecondsBetweenLines = 240,
DialogStyle = DialogType.DashBothLinesWithSpace,
ContinuationStyle = ContinuationStyle.None
});
}
}
}

View File

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class MultipleSearchAndReplaceGroup
{
public string Name { get; set; }
public bool Enabled { get; set; }
public List<MultipleSearchAndReplaceSetting> Rules { get; set; }
}
}

View File

@ -0,0 +1,11 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class MultipleSearchAndReplaceSetting
{
public bool Enabled { get; set; }
public string FindWhat { get; set; }
public string ReplaceWith { get; set; }
public string SearchType { get; set; }
public string Description { get; set; }
}
}

View File

@ -0,0 +1,21 @@
using System;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class NetworkSettings
{
public string UserName { get; set; }
public string WebApiUrl { get; set; }
public string SessionKey { get; set; }
public int PollIntervalSeconds { get; set; }
public string NewMessageSound { get; set; }
public NetworkSettings()
{
UserName = string.Empty;
SessionKey = Guid.NewGuid().ToString();
WebApiUrl = "https://www.nikse.dk/api/SeNet";
PollIntervalSeconds = 5;
}
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Text;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class ProxySettings
{
public string ProxyAddress { get; set; }
public string AuthType { get; set; }
public bool UseDefaultCredentials { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Domain { get; set; }
public string DecodePassword()
{
return Encoding.UTF8.GetString(Convert.FromBase64String(Password));
}
public void EncodePassword(string unencryptedPassword)
{
Password = Convert.ToBase64String(Encoding.UTF8.GetBytes(unencryptedPassword));
}
}
}

View File

@ -0,0 +1,14 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class RecentFileEntry
{
public string FileName { get; set; }
public string OriginalFileName { get; set; }
public string VideoFileName { get; set; }
public int AudioTrack { get; set; }
public int FirstVisibleIndex { get; set; }
public int FirstSelectedIndex { get; set; }
public long VideoOffsetInMs { get; set; }
public bool VideoIsSmpte { get; set; }
}
}

View File

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Serialization;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class RecentFilesSettings
{
private const int MaxRecentFiles = 25;
[XmlArrayItem("FileName")]
public List<RecentFileEntry> Files { get; set; }
public RecentFilesSettings()
{
Files = new List<RecentFileEntry>();
}
public void Add(string fileName, int firstVisibleIndex, int firstSelectedIndex, string videoFileName, int audioTrack, string originalFileName, long videoOffset, bool isSmpte)
{
Files = Files.Where(p => !string.IsNullOrEmpty(p.FileName)).ToList();
if (string.IsNullOrEmpty(fileName) && !string.IsNullOrEmpty(originalFileName))
{
fileName = originalFileName;
originalFileName = null;
}
if (string.IsNullOrEmpty(fileName))
{
Files.Insert(0, new RecentFileEntry { FileName = string.Empty });
return;
}
var existingEntry = GetRecentFile(fileName, originalFileName);
if (existingEntry == null)
{
Files.Insert(0, new RecentFileEntry { FileName = fileName ?? string.Empty, FirstVisibleIndex = -1, FirstSelectedIndex = -1, VideoFileName = videoFileName, AudioTrack = audioTrack, OriginalFileName = originalFileName });
}
else
{
Files.Remove(existingEntry);
existingEntry.FirstSelectedIndex = firstSelectedIndex;
existingEntry.FirstVisibleIndex = firstVisibleIndex;
existingEntry.VideoFileName = videoFileName;
existingEntry.AudioTrack = audioTrack;
existingEntry.OriginalFileName = originalFileName;
existingEntry.VideoOffsetInMs = videoOffset;
existingEntry.VideoIsSmpte = isSmpte;
Files.Insert(0, existingEntry);
}
Files = Files.Take(MaxRecentFiles).ToList();
}
public void Add(string fileName, string videoFileName, int audioTrack, string originalFileName)
{
Files = Files.Where(p => !string.IsNullOrEmpty(p.FileName)).ToList();
var existingEntry = GetRecentFile(fileName, originalFileName);
if (existingEntry == null)
{
Files.Insert(0, new RecentFileEntry { FileName = fileName ?? string.Empty, FirstVisibleIndex = -1, FirstSelectedIndex = -1, VideoFileName = videoFileName, AudioTrack = audioTrack, OriginalFileName = originalFileName });
}
else
{
Files.Remove(existingEntry);
Files.Insert(0, existingEntry);
}
Files = Files.Take(MaxRecentFiles).ToList();
}
private RecentFileEntry GetRecentFile(string fileName, string originalFileName)
{
RecentFileEntry existingEntry;
if (string.IsNullOrEmpty(originalFileName))
{
existingEntry = Files.Find(p => !string.IsNullOrEmpty(p.FileName) &&
string.IsNullOrEmpty(p.OriginalFileName) &&
p.FileName.Equals(fileName, StringComparison.OrdinalIgnoreCase));
}
else
{
existingEntry = Files.Find(p => !string.IsNullOrEmpty(p.FileName) &&
!string.IsNullOrEmpty(p.OriginalFileName) &&
p.FileName.Equals(fileName, StringComparison.OrdinalIgnoreCase) &&
p.OriginalFileName.Equals(originalFileName, StringComparison.OrdinalIgnoreCase));
}
return existingEntry;
}
}
}

View File

@ -0,0 +1,38 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class RemoveTextForHearingImpairedSettings
{
public bool RemoveTextBetweenBrackets { get; set; }
public bool RemoveTextBetweenParentheses { get; set; }
public bool RemoveTextBetweenCurlyBrackets { get; set; }
public bool RemoveTextBetweenQuestionMarks { get; set; }
public bool RemoveTextBetweenCustom { get; set; }
public string RemoveTextBetweenCustomBefore { get; set; }
public string RemoveTextBetweenCustomAfter { get; set; }
public bool RemoveTextBetweenOnlySeparateLines { get; set; }
public bool RemoveTextBeforeColon { get; set; }
public bool RemoveTextBeforeColonOnlyIfUppercase { get; set; }
public bool RemoveTextBeforeColonOnlyOnSeparateLine { get; set; }
public bool RemoveInterjections { get; set; }
public bool RemoveInterjectionsOnlyOnSeparateLine { get; set; }
public bool RemoveIfContains { get; set; }
public bool RemoveIfAllUppercase { get; set; }
public string RemoveIfContainsText { get; set; }
public bool RemoveIfOnlyMusicSymbols { get; set; }
public RemoveTextForHearingImpairedSettings()
{
RemoveTextBetweenBrackets = true;
RemoveTextBetweenParentheses = true;
RemoveTextBetweenCurlyBrackets = true;
RemoveTextBetweenQuestionMarks = true;
RemoveTextBetweenCustom = false;
RemoveTextBetweenCustomBefore = "¶";
RemoveTextBetweenCustomAfter = "¶";
RemoveTextBeforeColon = true;
RemoveTextBeforeColonOnlyIfUppercase = true;
RemoveIfContainsText = "¶";
RemoveIfOnlyMusicSymbols = true;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,540 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using Nikse.SubtitleEdit.Core.Common;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class Shortcuts
{
// General
public string GeneralMergeSelectedLines { get; set; }
public string GeneralMergeWithPrevious { get; set; }
public string GeneralMergeWithNext { get; set; }
public string GeneralMergeWithPreviousAndUnbreak { get; set; }
public string GeneralMergeWithNextAndUnbreak { get; set; }
public string GeneralMergeWithPreviousAndBreak { get; set; }
public string GeneralMergeWithNextAndBreak { get; set; }
public string GeneralMergeSelectedLinesAndAutoBreak { get; set; }
public string GeneralMergeSelectedLinesAndUnbreak { get; set; }
public string GeneralMergeSelectedLinesAndUnbreakCjk { get; set; }
public string GeneralMergeSelectedLinesOnlyFirstText { get; set; }
public string GeneralMergeSelectedLinesBilingual { get; set; }
public string GeneralMergeWithPreviousBilingual { get; set; }
public string GeneralMergeWithNextBilingual { get; set; }
public string GeneralMergeOriginalAndTranslation { get; set; }
public string GeneralToggleTranslationMode { get; set; }
public string GeneralSwitchOriginalAndTranslation { get; set; }
public string GeneralSwitchOriginalAndTranslationTextBoxes { get; set; }
public string GeneralLayoutChoose { get; set; }
public string GeneralLayoutChoose1 { get; set; }
public string GeneralLayoutChoose2 { get; set; }
public string GeneralLayoutChoose3 { get; set; }
public string GeneralLayoutChoose4 { get; set; }
public string GeneralLayoutChoose5 { get; set; }
public string GeneralLayoutChoose6 { get; set; }
public string GeneralLayoutChoose7 { get; set; }
public string GeneralLayoutChoose8 { get; set; }
public string GeneralLayoutChoose9 { get; set; }
public string GeneralLayoutChoose10 { get; set; }
public string GeneralLayoutChoose11 { get; set; }
public string GeneralLayoutChoose12 { get; set; }
public string GeneralPlayFirstSelected { get; set; }
public string GeneralGoToFirstSelectedLine { get; set; }
public string GeneralGoToNextEmptyLine { get; set; }
public string GeneralGoToNextSubtitle { get; set; }
public string GeneralGoToNextSubtitlePlayTranslate { get; set; }
public string GeneralGoToNextSubtitleCursorAtEnd { get; set; }
public string GeneralGoToPrevSubtitle { get; set; }
public string GeneralGoToPrevSubtitlePlayTranslate { get; set; }
public string GeneralGoToStartOfCurrentSubtitle { get; set; }
public string GeneralGoToEndOfCurrentSubtitle { get; set; }
public string GeneralGoToPreviousSubtitleAndFocusVideo { get; set; }
public string GeneralGoToNextSubtitleAndFocusVideo { get; set; }
public string GeneralGoToPreviousSubtitleAndFocusWaveform { get; set; }
public string GeneralGoToNextSubtitleAndFocusWaveform { get; set; }
public string GeneralGoToPrevSubtitleAndPlay { get; set; }
public string GeneralGoToNextSubtitleAndPlay { get; set; }
public string GeneralToggleBookmarks { get; set; }
public string GeneralToggleBookmarksWithText { get; set; }
public string GeneralEditBookmarks { get; set; }
public string GeneralClearBookmarks { get; set; }
public string GeneralGoToBookmark { get; set; }
public string GeneralGoToPreviousBookmark { get; set; }
public string GeneralGoToNextBookmark { get; set; }
public string GeneralChooseProfile { get; set; }
public string GeneralDuplicateLine { get; set; }
public string OpenDataFolder { get; set; }
public string OpenContainingFolder { get; set; }
public string GeneralToggleView { get; set; }
public string GeneralToggleMode { get; set; }
public string GeneralTogglePreviewOnVideo { get; set; }
public string GeneralRemoveBlankLines { get; set; }
public string GeneralApplyAssaOverrideTags { get; set; }
public string GeneralSetAssaPosition { get; set; }
public string GeneralSetAssaResolution { get; set; }
public string GeneralSetAssaBgBox { get; set; }
public string GeneralColorPicker { get; set; }
public string GeneralTakeAutoBackup { get; set; }
public string GeneralHelp { get; set; }
public string GeneralFocusTextBox { get; set; }
// File
public string MainFileNew { get; set; }
public string MainFileOpen { get; set; }
public string MainFileOpenKeepVideo { get; set; }
public string MainFileSave { get; set; }
public string MainFileSaveOriginal { get; set; }
public string MainFileSaveOriginalAs { get; set; }
public string MainFileSaveAs { get; set; }
public string MainFileSaveAll { get; set; }
public string MainFileOpenOriginal { get; set; }
public string MainFileCloseOriginal { get; set; }
public string MainFileCloseTranslation { get; set; }
public string MainFileCompare { get; set; }
public string MainFileVerifyCompleteness { get; set; }
public string MainFileImportPlainText { get; set; }
public string MainFileImportBdSupForEdit { get; set; }
public string MainFileImportTimeCodes { get; set; }
public string MainFileExportEbu { get; set; }
public string MainFileExportPac { get; set; }
public string MainFileExportBdSup { get; set; }
public string MainFileExportEdlClip { get; set; }
public string MainFileExportPlainText { get; set; }
public string MainFileExit { get; set; }
// Edit
public string MainEditUndo { get; set; }
public string MainEditRedo { get; set; }
public string MainEditFind { get; set; }
public string MainEditFindNext { get; set; }
public string MainEditReplace { get; set; }
public string MainEditMultipleReplace { get; set; }
public string MainEditGoToLineNumber { get; set; }
public string MainEditRightToLeft { get; set; }
public string MainEditFixRTLViaUnicodeChars { get; set; }
public string MainEditRemoveRTLUnicodeChars { get; set; }
public string MainEditReverseStartAndEndingForRTL { get; set; }
public string MainVideoToggleControls { get; set; }
public string MainEditToggleTranslationOriginalInPreviews { get; set; }
public string MainEditInverseSelection { get; set; }
public string MainEditModifySelection { get; set; }
// Tools
public string MainToolsAdjustDuration { get; set; }
public string MainToolsAdjustDurationLimits { get; set; }
public string MainToolsFixCommonErrors { get; set; }
public string MainToolsFixCommonErrorsPreview { get; set; }
public string MainToolsMergeShortLines { get; set; }
public string MainToolsMergeDuplicateText { get; set; }
public string MainToolsMergeSameTimeCodes { get; set; }
public string MainToolsMakeEmptyFromCurrent { get; set; }
public string MainToolsSplitLongLines { get; set; }
public string MainToolsDurationsBridgeGap { get; set; }
public string MainToolsMinimumDisplayTimeBetweenParagraphs { get; set; }
public string MainToolsRenumber { get; set; }
public string MainToolsRemoveTextForHI { get; set; }
public string MainToolsConvertColorsToDialog { get; set; }
public string MainToolsChangeCasing { get; set; }
public string MainToolsAutoDuration { get; set; }
public string MainToolsBatchConvert { get; set; }
public string MainToolsMeasurementConverter { get; set; }
public string MainToolsSplit { get; set; }
public string MainToolsAppend { get; set; }
public string MainToolsJoin { get; set; }
public string MainToolsStyleManager { get; set; }
// Video
public string MainVideoOpen { get; set; }
public string MainVideoClose { get; set; }
public string MainVideoPause { get; set; }
public string MainVideoStop { get; set; }
public string MainVideoPlayFromJustBefore { get; set; }
public string MainVideoPlayFromBeginning { get; set; }
public string MainVideoPlayPauseToggle { get; set; }
public string MainVideoPlay150Speed { get; set; }
public string MainVideoPlay200Speed { get; set; }
public string MainVideoFocusSetVideoPosition { get; set; }
public string MainVideoToggleVideoControls { get; set; }
public string MainVideo1FrameLeft { get; set; }
public string MainVideo1FrameRight { get; set; }
public string MainVideo1FrameLeftWithPlay { get; set; }
public string MainVideo1FrameRightWithPlay { get; set; }
public string MainVideo100MsLeft { get; set; }
public string MainVideo100MsRight { get; set; }
public string MainVideo500MsLeft { get; set; }
public string MainVideo500MsRight { get; set; }
public string MainVideo1000MsLeft { get; set; }
public string MainVideo1000MsRight { get; set; }
public string MainVideo5000MsLeft { get; set; }
public string MainVideo5000MsRight { get; set; }
public string MainVideoXSMsLeft { get; set; }
public string MainVideoXSMsRight { get; set; }
public string MainVideoXLMsLeft { get; set; }
public string MainVideoXLMsRight { get; set; }
public string MainVideo3000MsLeft { get; set; }
public string MainVideo3000MsRight { get; set; }
public string MainVideoGoToStartCurrent { get; set; }
public string MainVideoToggleStartEndCurrent { get; set; }
public string MainVideoPlaySelectedLines { get; set; }
public string MainVideoLoopSelectedLines { get; set; }
public string MainVideoGoToPrevSubtitle { get; set; }
public string MainVideoGoToNextSubtitle { get; set; }
public string MainVideoGoToPrevTimeCode { get; set; }
public string MainVideoGoToNextTimeCode { get; set; }
public string MainVideoGoToPrevChapter { get; set; }
public string MainVideoGoToNextChapter { get; set; }
public string MainVideoSelectNextSubtitle { get; set; }
public string MainVideoFullscreen { get; set; }
public string MainVideoSlower { get; set; }
public string MainVideoFaster { get; set; }
public string MainVideoSpeedToggle { get; set; }
public string MainVideoReset { get; set; }
public string MainVideoToggleBrightness { get; set; }
public string MainVideoToggleContrast { get; set; }
public string MainVideoAudioToTextVosk { get; set; }
public string MainVideoAudioToTextWhisper { get; set; }
public string MainVideoAudioExtractAudioSelectedLines { get; set; }
public string MainVideoTextToSpeech { get; set; }
// spell check
public string MainSpellCheck { get; set; }
public string MainSpellCheckFindDoubleWords { get; set; }
public string MainSpellCheckAddWordToNames { get; set; }
// Sync
public string MainSynchronizationAdjustTimes { get; set; }
public string MainSynchronizationVisualSync { get; set; }
public string MainSynchronizationPointSync { get; set; }
public string MainSynchronizationPointSyncViaFile { get; set; }
public string MainSynchronizationChangeFrameRate { get; set; }
// List view
public string MainListViewItalic { get; set; }
public string MainListViewBold { get; set; }
public string MainListViewUnderline { get; set; }
public string MainListViewBox { get; set; }
public string MainListViewToggleQuotes { get; set; }
public string MainListViewToggleHiTags { get; set; }
public string MainListViewToggleCustomTags { get; set; }
public string MainListViewSplit { get; set; }
public string MainListViewToggleDashes { get; set; }
public string MainListViewToggleMusicSymbols { get; set; }
public string MainListViewAlignment { get; set; }
public string MainListViewAlignmentN1 { get; set; }
public string MainListViewAlignmentN2 { get; set; }
public string MainListViewAlignmentN3 { get; set; }
public string MainListViewAlignmentN4 { get; set; }
public string MainListViewAlignmentN5 { get; set; }
public string MainListViewAlignmentN6 { get; set; }
public string MainListViewAlignmentN7 { get; set; }
public string MainListViewAlignmentN8 { get; set; }
public string MainListViewAlignmentN9 { get; set; }
public string MainListViewColor1 { get; set; }
public string MainListViewColor2 { get; set; }
public string MainListViewColor3 { get; set; }
public string MainListViewColor4 { get; set; }
public string MainListViewColor5 { get; set; }
public string MainListViewColor6 { get; set; }
public string MainListViewColor7 { get; set; }
public string MainListViewColor8 { get; set; }
public string MainListViewSetNewActor { get; set; }
public string MainListViewSetActor1 { get; set; }
public string MainListViewSetActor2 { get; set; }
public string MainListViewSetActor3 { get; set; }
public string MainListViewSetActor4 { get; set; }
public string MainListViewSetActor5 { get; set; }
public string MainListViewSetActor6 { get; set; }
public string MainListViewSetActor7 { get; set; }
public string MainListViewSetActor8 { get; set; }
public string MainListViewSetActor9 { get; set; }
public string MainListViewSetActor10 { get; set; }
public string MainListViewColorChoose { get; set; }
public string MainRemoveFormatting { get; set; }
public string MainListViewCopyText { get; set; }
public string MainListViewCopyPlainText { get; set; }
public string MainListViewCopyTextFromOriginalToCurrent { get; set; }
public string MainListViewAutoDuration { get; set; }
public string MainListViewColumnDeleteText { get; set; }
public string MainListViewColumnDeleteTextAndShiftUp { get; set; }
public string MainListViewColumnInsertText { get; set; }
public string MainListViewColumnPaste { get; set; }
public string MainListViewColumnTextUp { get; set; }
public string MainListViewColumnTextDown { get; set; }
public string MainListViewGoToNextError { get; set; }
public string MainListViewListErrors { get; set; }
public string MainListViewSortByNumber { get; set; }
public string MainListViewSortByStartTime { get; set; }
public string MainListViewSortByEndTime { get; set; }
public string MainListViewSortByDuration { get; set; }
public string MainListViewSortByGap { get; set; }
public string MainListViewSortByText { get; set; }
public string MainListViewSortBySingleLineMaxLen { get; set; }
public string MainListViewSortByTextTotalLength { get; set; }
public string MainListViewSortByCps { get; set; }
public string MainListViewSortByWpm { get; set; }
public string MainListViewSortByNumberOfLines { get; set; }
public string MainListViewSortByActor { get; set; }
public string MainListViewSortByStyle { get; set; }
public string MainListViewRemoveTimeCodes { get; set; }
public string MainTextBoxSplitAtCursor { get; set; }
public string MainTextBoxSplitAtCursorAndAutoBr { get; set; }
public string MainTextBoxSplitAtCursorAndVideoPos { get; set; }
public string MainTextBoxSplitSelectedLineBilingual { get; set; }
public string MainTextBoxMoveLastWordDown { get; set; }
public string MainTextBoxMoveFirstWordFromNextUp { get; set; }
public string MainTextBoxMoveLastWordDownCurrent { get; set; }
public string MainTextBoxMoveFirstWordUpCurrent { get; set; }
public string MainTextBoxMoveFromCursorToNextAndGoToNext { get; set; }
public string MainTextBoxSelectionToLower { get; set; }
public string MainTextBoxSelectionToUpper { get; set; }
public string MainTextBoxSelectionToggleCasing { get; set; }
public string MainTextBoxSelectionToRuby { get; set; }
public string MainTextBoxToggleAutoDuration { get; set; }
public string MainCreateInsertSubAtVideoPos { get; set; }
public string MainCreateInsertSubAtVideoPosMax { get; set; }
public string MainCreateInsertSubAtVideoPosNoTextBoxFocus { get; set; }
public string MainCreateSetStart { get; set; }
public string MainCreateSetEnd { get; set; }
public string MainAdjustVideoSetStartForAppropriateLine { get; set; }
public string MainAdjustVideoSetEndForAppropriateLine { get; set; }
public string MainAdjustSetEndAndPause { get; set; }
public string MainCreateSetEndAddNewAndGoToNew { get; set; }
public string MainCreateStartDownEndUp { get; set; }
public string MainAdjustSetStartAndOffsetTheRest { get; set; }
public string MainAdjustSetStartAndOffsetTheRest2 { get; set; }
public string MainAdjustSetStartAndOffsetTheWholeSubtitle { get; set; }
public string MainAdjustSetEndAndOffsetTheRest { get; set; }
public string MainAdjustSetEndAndOffsetTheRestAndGoToNext { get; set; }
public string MainAdjustSetStartAndGotoNext { get; set; }
public string MainAdjustSetEndAndGotoNext { get; set; }
public string MainAdjustViaEndAutoStart { get; set; }
public string MainAdjustViaEndAutoStartAndGoToNext { get; set; }
public string MainAdjustSetEndMinusGapAndStartNextHere { get; set; }
public string MainSetEndAndStartNextAfterGap { get; set; }
public string MainAdjustSetStartAutoDurationAndGoToNext { get; set; }
public string MainAdjustSetEndNextStartAndGoToNext { get; set; }
public string MainAdjustStartDownEndUpAndGoToNext { get; set; }
public string MainAdjustSetStartAndEndOfPrevious { get; set; }
public string MainAdjustSetStartAndEndOfPreviousAndGoToNext { get; set; }
public string MainAdjustSetStartKeepDuration { get; set; }
public string MainAdjustSelected100MsForward { get; set; }
public string MainAdjustSelected100MsBack { get; set; }
public string MainAdjustStartXMsBack { get; set; }
public string MainAdjustStartXMsForward { get; set; }
public string MainAdjustEndXMsBack { get; set; }
public string MainAdjustEndXMsForward { get; set; }
public string MoveStartOneFrameBack { get; set; }
public string MoveStartOneFrameForward { get; set; }
public string MoveEndOneFrameBack { get; set; }
public string MoveEndOneFrameForward { get; set; }
public string MoveStartOneFrameBackKeepGapPrev { get; set; }
public string MoveStartOneFrameForwardKeepGapPrev { get; set; }
public string MoveEndOneFrameBackKeepGapNext { get; set; }
public string MoveEndOneFrameForwardKeepGapNext { get; set; }
public string MainAdjustSnapStartToNextShotChange { get; set; }
public string MainAdjustSnapEndToPreviousShotChange { get; set; }
public string MainAdjustExtendToNextShotChange { get; set; }
public string MainAdjustExtendToPreviousShotChange { get; set; }
public string MainAdjustExtendToNextSubtitle { get; set; }
public string MainAdjustExtendToPreviousSubtitle { get; set; }
public string MainAdjustExtendToNextSubtitleMinusChainingGap { get; set; }
public string MainAdjustExtendToPreviousSubtitleMinusChainingGap { get; set; }
public string MainAdjustExtendCurrentSubtitle { get; set; }
public string MainAdjustExtendPreviousLineEndToCurrentStart { get; set; }
public string MainAdjustExtendNextLineStartToCurrentEnd { get; set; }
public string MainSetInCueToClosestShotChangeLeftGreenZone { get; set; }
public string MainSetInCueToClosestShotChangeRightGreenZone { get; set; }
public string MainSetOutCueToClosestShotChangeLeftGreenZone { get; set; }
public string MainSetOutCueToClosestShotChangeRightGreenZone { get; set; }
public string GeneralAutoCalcCurrentDuration { get; set; }
public string GeneralAutoCalcCurrentDurationByOptimalReadingSpeed { get; set; }
public string GeneralAutoCalcCurrentDurationByMinReadingSpeed { get; set; }
public string MainInsertAfter { get; set; }
public string MainTextBoxAutoBreak { get; set; }
public string MainTextBoxBreakAtPosition { get; set; }
public string MainTextBoxBreakAtPositionAndGoToNext { get; set; }
public string MainTextBoxRecord { get; set; }
public string MainTextBoxUnbreak { get; set; }
public string MainTextBoxUnbreakNoSpace { get; set; }
public string MainTextBoxAssaIntellisense { get; set; }
public string MainTextBoxAssaRemoveTag { get; set; }
public string MainWaveformInsertAtCurrentPosition { get; set; }
public string MainInsertBefore { get; set; }
public string MainMergeDialog { get; set; }
public string MainMergeDialogWithNext { get; set; }
public string MainMergeDialogWithPrevious { get; set; }
public string MainAutoBalanceSelectedLines { get; set; }
public string MainEvenlyDistributeSelectedLines { get; set; }
public string MainToggleFocus { get; set; }
public string MainToggleFocusWaveform { get; set; }
public string MainToggleFocusWaveformTextBox { get; set; }
public string WaveformAdd { get; set; }
public string WaveformVerticalZoom { get; set; }
public string WaveformVerticalZoomOut { get; set; }
public string WaveformZoomIn { get; set; }
public string WaveformZoomOut { get; set; }
public string WaveformSplit { get; set; }
public string WaveformPlaySelection { get; set; }
public string WaveformPlaySelectionEnd { get; set; }
public string WaveformSearchSilenceForward { get; set; }
public string WaveformSearchSilenceBack { get; set; }
public string WaveformAddTextHere { get; set; }
public string WaveformAddTextHereFromClipboard { get; set; }
public string WaveformSetParagraphAsSelection { get; set; }
public string WaveformGoToPreviousShotChange { get; set; }
public string WaveformGoToNextShotChange { get; set; }
public string WaveformToggleShotChange { get; set; }
public string WaveformListShotChanges { get; set; }
public string WaveformGuessStart { get; set; }
public string Waveform100MsLeft { get; set; }
public string Waveform100MsRight { get; set; }
public string Waveform1000MsLeft { get; set; }
public string Waveform1000MsRight { get; set; }
public string WaveformAudioToTextVosk { get; set; }
public string WaveformAudioToTextWhisper { get; set; }
public string MainCheckFixTimingViaShotChanges { get; set; }
public string MainTranslateGoogleIt { get; set; }
public string MainTranslateGoogleTranslateIt { get; set; }
public string MainTranslateAuto { get; set; }
public string MainTranslateAutoSelectedLines { get; set; }
public string MainTranslateCustomSearch1 { get; set; }
public string MainTranslateCustomSearch2 { get; set; }
public string MainTranslateCustomSearch3 { get; set; }
public string MainTranslateCustomSearch4 { get; set; }
public string MainTranslateCustomSearch5 { get; set; }
public List<PluginShortcut> PluginShortcuts { get; set; }
public Shortcuts()
{
GeneralGoToFirstSelectedLine = "Control+L";
GeneralMergeSelectedLines = "Control+Shift+M";
GeneralToggleTranslationMode = "Control+Shift+O";
GeneralMergeOriginalAndTranslation = "Control+Alt+Shift+M";
GeneralGoToNextSubtitle = "Shift+Return";
GeneralGoToNextSubtitlePlayTranslate = "Alt+Down";
GeneralGoToPrevSubtitlePlayTranslate = "Alt+Up";
GeneralToggleBookmarksWithText = "Control+Shift+B";
OpenDataFolder = "Control+Alt+Shift+D";
GeneralToggleView = "F2";
GeneralHelp = "F1";
MainFileNew = "Control+N";
MainFileOpen = "Control+O";
MainFileSave = "Control+S";
MainFileSaveAs = "Control+Shift+S";
MainEditUndo = "Control+Z";
MainEditRedo = "Control+Y";
MainEditFind = "Control+F";
MainEditFindNext = "F3";
MainEditReplace = "Control+H";
MainEditMultipleReplace = "Control+Alt+M";
MainEditGoToLineNumber = "Control+G";
MainEditRightToLeft = "Control+Shift+Alt+R";
MainEditInverseSelection = "Control+Shift+I";
MainToolsFixCommonErrors = "Control+Shift+F";
MainToolsFixCommonErrorsPreview = "Control+P";
MainToolsRenumber = "Control+Shift+N";
MainToolsRemoveTextForHI = "Control+Shift+H";
MainToolsChangeCasing = "Control+Shift+C";
MainVideoPlayFromJustBefore = "Shift+F10";
MainVideoPlayPauseToggle = "Control+P";
MainVideoPause = "Control+Alt+P";
MainVideo500MsLeft = "Alt+Left";
MainVideo500MsRight = "Alt+Right";
MainVideoFullscreen = "Alt+Return";
MainVideoReset = "Control+D0";
MainSpellCheck = "Control+Shift+S";
MainSpellCheckFindDoubleWords = "Control+Shift+D";
MainSpellCheckAddWordToNames = "Control+Shift+L";
MainSynchronizationAdjustTimes = "Control+Shift+A";
MainSynchronizationVisualSync = "Control+Shift+V";
MainSynchronizationPointSync = "Control+Shift+P";
MainListViewItalic = "Control+I";
MainTextBoxSplitAtCursor = "Control+Alt+V";
MainTextBoxSelectionToLower = "Control+U";
MainTextBoxSelectionToUpper = "Control+Shift+U";
MainTextBoxSelectionToggleCasing = "Control+Shift+F3";
MainCreateInsertSubAtVideoPos = "Shift+F9";
MainVideoGoToStartCurrent = "Shift+F11";
MainVideoToggleStartEndCurrent = "F4";
MainVideoPlaySelectedLines = "F5";
MainVideoGoToStartCurrent = "F6";
MainVideo3000MsLeft = "F7";
MainListViewGoToNextError = "F8";
MainListViewListErrors = "Control+F8";
MainCreateSetStart = "F11";
MainCreateSetEnd = "F12";
MainAdjustSetStartAndOffsetTheRest = "Control+Space";
MainAdjustSetStartAndOffsetTheRest2 = "F9";
MainAdjustSetEndAndGotoNext = "F10";
MainInsertAfter = "Alt+Insert";
MainWaveformInsertAtCurrentPosition = "Insert";
MainInsertBefore = "Control+Shift+Insert";
MainTextBoxAutoBreak = "Control+R";
MainTranslateAuto = "Control+Shift+G";
MainAdjustExtendToNextSubtitle = "Control+Shift+E";
MainAdjustExtendToPreviousSubtitle = "Alt+Shift+E";
MainAdjustExtendToNextSubtitleMinusChainingGap = "Control+Shift+W";
MainAdjustExtendToPreviousSubtitleMinusChainingGap = "Alt+Shift+W";
WaveformVerticalZoom = "Shift+Add";
WaveformVerticalZoomOut = "Shift+Subtract";
WaveformAddTextHere = "Return";
Waveform100MsLeft = "Shift+Left";
Waveform100MsRight = "Shift+Right";
Waveform1000MsLeft = "Left";
Waveform1000MsRight = "Right";
MainCheckFixTimingViaShotChanges = "Control+Shift+D9";
PluginShortcuts = new List<PluginShortcut>();
}
public Shortcuts Clone()
{
var xws = new XmlWriterSettings { Indent = true };
var sb = new StringBuilder();
using (var textWriter = XmlWriter.Create(sb, xws))
{
textWriter.WriteStartDocument();
textWriter.WriteStartElement("Settings", string.Empty);
Settings.WriteShortcuts(this, textWriter);
textWriter.WriteEndElement();
textWriter.WriteEndDocument();
}
var doc = new XmlDocument { PreserveWhitespace = true };
doc.LoadXml(sb.ToString().Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""));
var shortcuts = new Shortcuts();
Settings.ReadShortcuts(doc, shortcuts);
return shortcuts;
}
public static void Save(string fileName, Shortcuts shortcuts)
{
var xws = new XmlWriterSettings { Indent = true, Encoding = Encoding.UTF8 };
var sb = new StringBuilder();
using (var textWriter = XmlWriter.Create(sb, xws))
{
textWriter.WriteStartDocument();
textWriter.WriteStartElement("Settings", string.Empty);
Settings.WriteShortcuts(shortcuts, textWriter);
textWriter.WriteEndElement();
textWriter.WriteEndDocument();
}
File.WriteAllText(fileName, sb.ToString().Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""), Encoding.UTF8);
}
public static Shortcuts Load(string fileName)
{
var doc = new XmlDocument { PreserveWhitespace = true };
using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
doc.Load(stream);
var shortcuts = new Shortcuts();
Settings.ReadShortcuts(doc, shortcuts);
return shortcuts;
}
}
}
}

View File

@ -0,0 +1,22 @@
using System.Drawing;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class SubtitleBeaming
{
public string FontName { get; set; }
public int FontSize { get; set; }
public Color FontColor { get; set; }
public Color BorderColor { get; set; }
public int BorderWidth { get; set; }
public SubtitleBeaming()
{
FontName = "Verdana";
FontSize = 30;
FontColor = Color.White;
BorderColor = Color.DarkGray;
BorderWidth = 2;
}
}
}

View File

@ -0,0 +1,224 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using Nikse.SubtitleEdit.Core.Common;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class SubtitleSettings
{
public List<AssaStorageCategory> AssaStyleStorageCategories { get; set; }
public List<string> AssaOverrideTagHistory { get; set; }
public bool AssaResolutionAutoNew { get; set; }
public bool AssaResolutionPromptChange { get; set; }
public bool AssaShowScaledBorderAndShadow { get; set; }
public bool AssaShowPlayDepth { get; set; }
public string DCinemaFontFile { get; set; }
public string DCinemaLoadFontResource { get; set; }
public int DCinemaFontSize { get; set; }
public int DCinemaBottomMargin { get; set; }
public double DCinemaZPosition { get; set; }
public int DCinemaFadeUpTime { get; set; }
public int DCinemaFadeDownTime { get; set; }
public bool DCinemaAutoGenerateSubtitleId { get; set; }
public string CurrentDCinemaSubtitleId { get; set; }
public string CurrentDCinemaMovieTitle { get; set; }
public string CurrentDCinemaReelNumber { get; set; }
public string CurrentDCinemaIssueDate { get; set; }
public string CurrentDCinemaLanguage { get; set; }
public string CurrentDCinemaEditRate { get; set; }
public string CurrentDCinemaTimeCodeRate { get; set; }
public string CurrentDCinemaStartTime { get; set; }
public string CurrentDCinemaFontId { get; set; }
public string CurrentDCinemaFontUri { get; set; }
public Color CurrentDCinemaFontColor { get; set; }
public string CurrentDCinemaFontEffect { get; set; }
public Color CurrentDCinemaFontEffectColor { get; set; }
public int CurrentDCinemaFontSize { get; set; }
public int CurrentCavena890LanguageIdLine1 { get; set; }
public int CurrentCavena890LanguageIdLine2 { get; set; }
public string CurrentCavena89Title { get; set; }
public string CurrentCavena890riginalTitle { get; set; }
public string CurrentCavena890Translator { get; set; }
public string CurrentCavena89Comment { get; set; }
public int CurrentCavena89LanguageId { get; set; }
public string Cavena890StartOfMessage { get; set; }
public bool EbuStlTeletextUseBox { get; set; }
public bool EbuStlTeletextUseDoubleHeight { get; set; }
public int EbuStlMarginTop { get; set; }
public int EbuStlMarginBottom { get; set; }
public int EbuStlNewLineRows { get; set; }
public bool EbuStlRemoveEmptyLines { get; set; }
public int PacVerticalTop { get; set; }
public int PacVerticalCenter { get; set; }
public int PacVerticalBottom { get; set; }
public string DvdStudioProHeader { get; set; }
public string TmpegEncXmlFontName { get; set; }
public string TmpegEncXmlFontHeight { get; set; }
public string TmpegEncXmlPosition { get; set; }
public bool CheetahCaptionAlwayWriteEndTime { get; set; }
public bool SamiDisplayTwoClassesAsTwoSubtitles { get; set; }
public int SamiHtmlEncodeMode { get; set; }
public string TimedText10TimeCodeFormat { get; set; }
public string TimedText10TimeCodeFormatSource { get; set; }
public bool TimedText10ShowStyleAndLanguage { get; set; }
public string TimedText10FileExtension { get; set; }
public string TimedTextItunesTopOrigin { get; set; }
public string TimedTextItunesTopExtent { get; set; }
public string TimedTextItunesBottomOrigin { get; set; }
public string TimedTextItunesBottomExtent { get; set; }
public string TimedTextItunesTimeCodeFormat { get; set; }
public string TimedTextItunesStyleAttribute { get; set; }
public string TimedTextImsc11TimeCodeFormat { get; set; }
public string TimedTextImsc11FileExtension { get; set; }
public int FcpFontSize { get; set; }
public string FcpFontName { get; set; }
public string NuendoCharacterListFile { get; set; }
public bool WebVttUseXTimestampMap { get; set; }
public bool WebVttUseMultipleXTimestampMap { get; set; }
public bool WebVttMergeLinesWithSameText { get; set; }
public long WebVttTimescale { get; set; }
public string WebVttCueAn1 { get; set; }
public string WebVttCueAn2 { get; set; }
public string WebVttCueAn3 { get; set; }
public string WebVttCueAn4 { get; set; }
public string WebVttCueAn5 { get; set; }
public string WebVttCueAn6 { get; set; }
public string WebVttCueAn7 { get; set; }
public string WebVttCueAn8 { get; set; }
public string WebVttCueAn9 { get; set; }
public string MPlayer2Extension { get; set; }
public bool TeletextItalicFix { get; set; }
public bool MccDebug { get; set; }
public bool BluRaySupSkipMerge { get; set; }
public bool BluRaySupForceMergeAll { get; set; }
public SubtitleSettings()
{
AssaStyleStorageCategories = new List<AssaStorageCategory>();
AssaOverrideTagHistory = new List<string>();
AssaResolutionAutoNew = true;
AssaResolutionPromptChange = true;
AssaShowScaledBorderAndShadow = true;
AssaShowPlayDepth = true;
DCinemaFontFile = "Arial.ttf";
DCinemaLoadFontResource = "urn:uuid:3dec6dc0-39d0-498d-97d0-928d2eb78391";
DCinemaFontSize = 42;
DCinemaBottomMargin = 8;
DCinemaZPosition = 0;
DCinemaFadeUpTime = 0;
DCinemaFadeDownTime = 0;
DCinemaAutoGenerateSubtitleId = true;
EbuStlTeletextUseBox = true;
EbuStlTeletextUseDoubleHeight = true;
EbuStlMarginTop = 0;
EbuStlMarginBottom = 2;
EbuStlNewLineRows = 2;
PacVerticalTop = 1;
PacVerticalCenter = 6;
PacVerticalBottom = 11;
DvdStudioProHeader = @"$VertAlign = Bottom
$Bold = FALSE
$Underlined = FALSE
$Italic = FALSE
$XOffset = 0
$YOffset = -5
$TextContrast = 15
$Outline1Contrast = 15
$Outline2Contrast = 13
$BackgroundContrast = 0
$ForceDisplay = FALSE
$FadeIn = 0
$FadeOut = 0
$HorzAlign = Center
";
TmpegEncXmlFontName = "Tahoma";
TmpegEncXmlFontHeight = "0.069";
TmpegEncXmlPosition = "23";
SamiDisplayTwoClassesAsTwoSubtitles = true;
SamiHtmlEncodeMode = 0;
TimedText10TimeCodeFormat = "Source";
TimedText10ShowStyleAndLanguage = true;
TimedText10FileExtension = ".xml";
TimedTextItunesTopOrigin = "0% 0%";
TimedTextItunesTopExtent = "100% 15%";
TimedTextItunesBottomOrigin = "0% 85%";
TimedTextItunesBottomExtent = "100% 15%";
TimedTextItunesTimeCodeFormat = "Frames";
TimedTextItunesStyleAttribute = "tts:fontStyle";
TimedTextImsc11TimeCodeFormat = "hh:mm:ss.ms";
TimedTextImsc11FileExtension = ".xml";
FcpFontSize = 18;
FcpFontName = "Lucida Grande";
Cavena890StartOfMessage = "10:00:00:00";
WebVttTimescale = 90000;
WebVttUseXTimestampMap = true;
WebVttUseMultipleXTimestampMap = true;
WebVttCueAn1 = "position:20%";
WebVttCueAn2 = "";
WebVttCueAn3 = "position:80%";
WebVttCueAn4 = "position:20% line:50%";
WebVttCueAn5 = "line:50%";
WebVttCueAn6 = "position:80% line:50%";
WebVttCueAn7 = "position:20% line:20%";
WebVttCueAn8 = "line:20%";
WebVttCueAn9 = "position:80% line:20%";
MPlayer2Extension = ".txt";
TeletextItalicFix = true;
}
public void InitializeDCinameSettings(bool smpte)
{
if (smpte)
{
CurrentDCinemaSubtitleId = "urn:uuid:" + Guid.NewGuid();
CurrentDCinemaLanguage = "en";
CurrentDCinemaFontUri = DCinemaLoadFontResource;
CurrentDCinemaFontId = "theFontId";
}
else
{
string hex = Guid.NewGuid().ToString().RemoveChar('-').ToLowerInvariant();
hex = hex.Insert(8, "-").Insert(13, "-").Insert(18, "-").Insert(23, "-");
CurrentDCinemaSubtitleId = hex;
CurrentDCinemaLanguage = "English";
CurrentDCinemaFontUri = DCinemaFontFile;
CurrentDCinemaFontId = "Arial";
}
CurrentDCinemaIssueDate = DateTime.Now.ToString("s");
CurrentDCinemaMovieTitle = "title";
CurrentDCinemaReelNumber = "1";
CurrentDCinemaFontColor = Color.White;
CurrentDCinemaFontEffect = "border";
CurrentDCinemaFontEffectColor = Color.Black;
CurrentDCinemaFontSize = DCinemaFontSize;
CurrentCavena890LanguageIdLine1 = -1;
CurrentCavena890LanguageIdLine2 = -1;
}
}
}

View File

@ -0,0 +1,670 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using Nikse.SubtitleEdit.Core.Common;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class ToolsSettings
{
public List<AssaTemplateItem> AssaTagTemplates { get; set; }
public int StartSceneIndex { get; set; }
public int EndSceneIndex { get; set; }
public int VerifyPlaySeconds { get; set; }
public bool FixShortDisplayTimesAllowMoveStartTime { get; set; }
public bool RemoveEmptyLinesBetweenText { get; set; }
public string MusicSymbol { get; set; }
public string MusicSymbolReplace { get; set; }
public string UnicodeSymbolsToInsert { get; set; }
public bool SpellCheckAutoChangeNameCasing { get; set; }
public bool SpellCheckUseLargerFont { get; set; }
public bool SpellCheckAutoChangeNamesUseSuggestions { get; set; }
public string SpellCheckSearchEngine { get; set; }
public bool CheckOneLetterWords { get; set; }
public bool SpellCheckEnglishAllowInQuoteAsIng { get; set; }
public bool RememberUseAlwaysList { get; set; }
public bool LiveSpellCheck { get; set; }
public bool SpellCheckShowCompletedMessage { get; set; }
public bool OcrFixUseHardcodedRules { get; set; }
public bool OcrGoogleCloudVisionSeHandlesTextMerge { get; set; }
public int OcrBinaryImageCompareRgbThreshold { get; set; }
public int OcrTesseract4RgbThreshold { get; set; }
public string OcrAddLetterRow1 { get; set; }
public string OcrAddLetterRow2 { get; set; }
public string OcrTrainFonts { get; set; }
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 MicrosoftBingApiId { get; set; }
public string MicrosoftTranslatorApiKey { get; set; }
public string MicrosoftTranslatorTokenEndpoint { get; set; }
public string MicrosoftTranslatorCategory { get; set; }
public string GoogleApiV2Key { get; set; }
public bool GoogleTranslateNoKeyWarningShow { get; set; }
public int GoogleApiV1ChunkSize { get; set; }
public string GoogleTranslateLastSourceLanguage { get; set; }
public string GoogleTranslateLastTargetLanguage { get; set; }
public string AutoTranslateLastName { get; set; }
public string AutoTranslateLastUrl { get; set; }
public string AutoTranslateNllbApiUrl { get; set; }
public string AutoTranslateNllbServeUrl { get; set; }
public string AutoTranslateNllbServeModel { get; set; }
public string AutoTranslateLibreUrl { get; set; }
public string AutoTranslateLibreApiKey { get; set; }
public string AutoTranslateMyMemoryApiKey { get; set; }
public string AutoTranslateSeamlessM4TUrl { get; set; }
public string AutoTranslateDeepLApiKey { get; set; }
public string AutoTranslateDeepLUrl { get; set; }
public string AutoTranslatePapagoApiKeyId { get; set; }
public string AutoTranslatePapagoApiKey { get; set; }
public string AutoTranslateDeepLFormality { get; set; }
public bool TranslateAllowSplit { get; set; }
public string TranslateLastService { get; set; }
public string TranslateMergeStrategy { get; set; }
public string TranslateViaCopyPasteSeparator { get; set; }
public int TranslateViaCopyPasteMaxSize { get; set; }
public bool TranslateViaCopyPasteAutoCopyToClipboard { get; set; }
public string ChatGptUrl { get; set; }
public string ChatGptPrompt { get; set; }
public string ChatGptApiKey { get; set; }
public string ChatGptModel { get; set; }
public string LmStudioApiUrl { get; set; }
public string LmStudioModel { get; set; }
public string LmStudioPrompt { get; set; }
public string OllamaApiUrl { get; set; }
public string OllamaModels { get; set; }
public string OllamaModel { get; set; }
public string OllamaPrompt { get; set; }
public string AnthropicApiUrl { get; set; }
public string AnthropicPrompt { get; set; }
public string AnthropicApiKey { get; set; }
public string AnthropicApiModel { get; set; }
public int AutoTranslateDelaySeconds { get; set; }
public int AutoTranslateMaxBytes { get; set; }
public string AutoTranslateStrategy { get; set; }
public string GeminiProApiKey { get; set; }
public string TextToSpeechEngine { get; set; }
public string TextToSpeechLastVoice { get; set; }
public string TextToSpeechElevenLabsApiKey { get; set; }
public string TextToSpeechAzureApiKey { get; set; }
public string TextToSpeechAzureRegion { get; set; }
public bool TextToSpeechPreview { get; set; }
public bool TextToSpeechCustomAudio { get; set; }
public bool TextToSpeechCustomAudioStereo { get; set; }
public string TextToSpeechCustomAudioEncoding { get; set; }
public bool TextToSpeechAddToVideoFile { get; set; }
public bool ListViewSyntaxColorDurationSmall { get; set; }
public bool ListViewSyntaxColorDurationBig { get; set; }
public bool ListViewSyntaxColorOverlap { get; set; }
public bool ListViewSyntaxColorLongLines { get; set; }
public bool ListViewSyntaxColorWideLines { get; set; }
public bool ListViewSyntaxColorGap { get; set; }
public bool ListViewSyntaxMoreThanXLines { get; set; }
public Color ListViewSyntaxErrorColor { get; set; }
public Color ListViewUnfocusedSelectedColor { get; set; }
public Color Color1 { get; set; }
public Color Color2 { get; set; }
public Color Color3 { get; set; }
public Color Color4 { get; set; }
public Color Color5 { get; set; }
public Color Color6 { get; set; }
public Color Color7 { get; set; }
public Color Color8 { get; set; }
public bool ListViewShowColumnStartTime { get; set; }
public bool ListViewShowColumnEndTime { get; set; }
public bool ListViewShowColumnDuration { get; set; }
public bool ListViewShowColumnCharsPerSec { get; set; }
public bool ListViewShowColumnWordsPerMin { get; set; }
public bool ListViewShowColumnGap { get; set; }
public bool ListViewShowColumnActor { get; set; }
public bool ListViewShowColumnRegion { get; set; }
public bool ListViewMultipleReplaceShowColumnRuleInfo { get; set; }
public bool SplitAdvanced { get; set; }
public string SplitOutputFolder { get; set; }
public int SplitNumberOfParts { get; set; }
public string SplitVia { get; set; }
public bool JoinCorrectTimeCodes { get; set; }
public int JoinAddMs { get; set; }
public int SplitLongLinesMax { get; set; }
public string LastShowEarlierOrLaterSelection { get; set; }
public string NewEmptyTranslationText { get; set; }
public string BatchConvertOutputFolder { get; set; }
public bool BatchConvertOverwriteExisting { get; set; }
public bool BatchConvertSaveInSourceFolder { get; set; }
public bool BatchConvertRemoveFormatting { get; set; }
public bool BatchConvertRemoveFormattingAll { get; set; }
public bool BatchConvertRemoveFormattingItalic { get; set; }
public bool BatchConvertRemoveFormattingBold { get; set; }
public bool BatchConvertRemoveFormattingUnderline { get; set; }
public bool BatchConvertRemoveFormattingFontName { get; set; }
public bool BatchConvertRemoveFormattingColor { get; set; }
public bool BatchConvertRemoveFormattingAlignment { get; set; }
public bool BatchConvertRemoveStyle { get; set; }
public bool BatchConvertBridgeGaps { get; set; }
public bool BatchConvertFixCasing { get; set; }
public bool BatchConvertRemoveTextForHI { get; set; }
public bool BatchConvertConvertColorsToDialog { get; set; }
public bool BatchConvertBeautifyTimeCodes { get; set; }
public bool BatchConvertAutoTranslate { get; set; }
public bool BatchConvertFixCommonErrors { get; set; }
public bool BatchConvertMultipleReplace { get; set; }
public bool BatchConvertFixRtl { get; set; }
public string BatchConvertFixRtlMode { get; set; }
public bool BatchConvertSplitLongLines { get; set; }
public bool BatchConvertAutoBalance { get; set; }
public bool BatchConvertSetMinDisplayTimeBetweenSubtitles { get; set; }
public bool BatchConvertMergeShortLines { get; set; }
public bool BatchConvertRemoveLineBreaks { get; set; }
public bool BatchConvertMergeSameText { get; set; }
public bool BatchConvertMergeSameTimeCodes { get; set; }
public bool BatchConvertChangeFrameRate { get; set; }
public bool BatchConvertChangeSpeed { get; set; }
public bool BatchConvertAdjustDisplayDuration { get; set; }
public bool BatchConvertApplyDurationLimits { get; set; }
public bool BatchConvertDeleteLines { get; set; }
public bool BatchConvertAssaChangeRes { get; set; }
public bool BatchConvertSortBy { get; set; }
public string BatchConvertSortByChoice { get; set; }
public bool BatchConvertOffsetTimeCodes { get; set; }
public bool BatchConvertScanFolderIncludeVideo { get; set; }
public string BatchConvertLanguage { get; set; }
public string BatchConvertFormat { get; set; }
public string BatchConvertAssStyles { get; set; }
public string BatchConvertSsaStyles { get; set; }
public bool BatchConvertUseStyleFromSource { get; set; }
public string BatchConvertExportCustomTextTemplate { get; set; }
public bool BatchConvertTsOverrideXPosition { get; set; }
public bool BatchConvertTsOverrideYPosition { get; set; }
public int BatchConvertTsOverrideBottomMargin { get; set; }
public string BatchConvertTsOverrideHAlign { get; set; }
public int BatchConvertTsOverrideHMargin { get; set; }
public bool BatchConvertTsOverrideScreenSize { get; set; }
public int BatchConvertTsScreenWidth { get; set; }
public int BatchConvertTsScreenHeight { get; set; }
public string BatchConvertTsFileNameAppend { get; set; }
public bool BatchConvertTsOnlyTeletext { get; set; }
public string BatchConvertMkvLanguageCodeStyle { get; set; }
public string BatchConvertOcrEngine { get; set; }
public string BatchConvertOcrLanguage { get; set; }
public string WaveformBatchLastFolder { get; set; }
public string ModifySelectionText { get; set; }
public string ModifySelectionRule { get; set; }
public bool ModifySelectionCaseSensitive { get; set; }
public string ExportVobSubFontName { get; set; }
public int ExportVobSubFontSize { get; set; }
public string ExportVobSubVideoResolution { get; set; }
public string ExportVobSubLanguage { get; set; }
public bool ExportVobSubSimpleRendering { get; set; }
public bool ExportVobAntiAliasingWithTransparency { get; set; }
public string ExportBluRayFontName { get; set; }
public int ExportBluRayFontSize { get; set; }
public string ExportFcpFontName { get; set; }
public string ExportFontNameOther { get; set; }
public int ExportFcpFontSize { get; set; }
public string ExportFcpImageType { get; set; }
public string ExportFcpPalNtsc { get; set; }
public string ExportBdnXmlImageType { get; set; }
public int ExportLastFontSize { get; set; }
public int ExportLastLineHeight { get; set; }
public int ExportLastBorderWidth { get; set; }
public bool ExportLastFontBold { get; set; }
public string ExportBluRayVideoResolution { get; set; }
public string ExportFcpVideoResolution { get; set; }
public Color ExportFontColor { get; set; }
public Color ExportBorderColor { get; set; }
public Color ExportShadowColor { get; set; }
public int ExportBoxBorderSize { get; set; }
public string ExportBottomMarginUnit { get; set; }
public int ExportBottomMarginPercent { get; set; }
public int ExportBottomMarginPixels { get; set; }
public string ExportLeftRightMarginUnit { get; set; }
public int ExportLeftRightMarginPercent { get; set; }
public int ExportLeftRightMarginPixels { get; set; }
public int ExportHorizontalAlignment { get; set; }
public int ExportBluRayBottomMarginPercent { get; set; }
public int ExportBluRayBottomMarginPixels { get; set; }
public int ExportBluRayShadow { get; set; }
public bool ExportBluRayRemoveSmallGaps { get; set; }
public string ExportCdgBackgroundImage { get; set; }
public int ExportCdgMarginLeft { get; set; }
public int ExportCdgMarginBottom { get; set; }
public string ExportCdgFormat { get; set; }
public int Export3DType { get; set; }
public int Export3DDepth { get; set; }
public int ExportLastShadowTransparency { get; set; }
public double ExportLastFrameRate { get; set; }
public bool ExportFullFrame { get; set; }
public bool ExportFcpFullPathUrl { get; set; }
public string ExportPenLineJoin { get; set; }
public Color BinEditBackgroundColor { get; set; }
public Color BinEditImageBackgroundColor { get; set; }
public int BinEditTopMargin { get; set; }
public int BinEditBottomMargin { get; set; }
public int BinEditLeftMargin { get; set; }
public int BinEditRightMargin { get; set; }
public string BinEditStartPosition { get; set; }
public string BinEditStartSize { get; set; }
public bool BinEditShowColumnGap { get; set; }
public bool FixCommonErrorsFixOverlapAllowEqualEndStart { get; set; }
public bool FixCommonErrorsSkipStepOne { get; set; }
public string ImportTextSplitting { get; set; }
public string ImportTextSplittingLineMode { get; set; }
public string ImportTextLineBreak { get; set; }
public bool ImportTextMergeShortLines { get; set; }
public bool ImportTextRemoveEmptyLines { get; set; }
public bool ImportTextAutoSplitAtBlank { get; set; }
public bool ImportTextRemoveLinesNoLetters { get; set; }
public bool ImportTextGenerateTimeCodes { get; set; }
public bool ImportTextTakeTimeCodeFromFileName { get; set; }
public bool ImportTextAutoBreak { get; set; }
public bool ImportTextAutoBreakAtEnd { get; set; }
public decimal ImportTextGap { get; set; }
public decimal ImportTextAutoSplitNumberOfLines { get; set; }
public string ImportTextAutoBreakAtEndMarkerText { get; set; }
public bool ImportTextDurationAuto { get; set; }
public decimal ImportTextFixedDuration { get; set; }
public string GenerateTimeCodePatterns { get; set; }
public string MusicSymbolStyle { get; set; }
public int BridgeGapMilliseconds { get; set; }
public int BridgeGapMillisecondsMinGap { get; set; }
public string ExportCustomTemplates { get; set; }
public string ChangeCasingChoice { get; set; }
public bool ChangeCasingNormalFixNames { get; set; }
public bool ChangeCasingNormalOnlyUppercase { get; set; }
public bool UseNoLineBreakAfter { get; set; }
public string NoLineBreakAfterEnglish { get; set; }
public List<string> FindHistory { get; set; }
public string ReplaceIn { get; set; }
public string ExportTextFormatText { get; set; }
public bool ExportTextRemoveStyling { get; set; }
public bool ExportTextShowLineNumbers { get; set; }
public bool ExportTextShowLineNumbersNewLine { get; set; }
public bool ExportTextShowTimeCodes { get; set; }
public bool ExportTextShowTimeCodesNewLine { get; set; }
public bool ExportTextNewLineAfterText { get; set; }
public bool ExportTextNewLineBetweenSubtitles { get; set; }
public string ExportTextTimeCodeFormat { get; set; }
public string ExportTextTimeCodeSeparator { get; set; }
public bool VideoOffsetKeepTimeCodes { get; set; }
public int MoveStartEndMs { get; set; }
public decimal AdjustDurationSeconds { get; set; }
public int AdjustDurationPercent { get; set; }
public string AdjustDurationLast { get; set; }
public bool AdjustDurationExtendOnly { get; set; }
public bool AdjustDurationExtendEnforceDurationLimits { get; set; }
public bool AdjustDurationExtendCheckShotChanges { get; set; }
public bool ChangeSpeedAllowOverlap { get; set; }
public bool AutoBreakCommaBreakEarly { get; set; }
public bool AutoBreakDashEarly { get; set; }
public bool AutoBreakLineEndingEarly { get; set; }
public bool AutoBreakUsePixelWidth { get; set; }
public bool AutoBreakPreferBottomHeavy { get; set; }
public double AutoBreakPreferBottomPercent { get; set; }
public bool ApplyMinimumDurationLimit { get; set; }
public bool ApplyMinimumDurationLimitCheckShotChanges { get; set; }
public bool ApplyMaximumDurationLimit { get; set; }
public int MergeShortLinesMaxGap { get; set; }
public int MergeShortLinesMaxChars { get; set; }
public bool MergeShortLinesOnlyContinuous { get; set; }
public int MergeTextWithSameTimeCodesMaxGap { get; set; }
public bool MergeTextWithSameTimeCodesMakeDialog { get; set; }
public bool MergeTextWithSameTimeCodesReBreakLines { get; set; }
public int MergeLinesWithSameTextMaxMs { get; set; }
public bool MergeLinesWithSameTextIncrement { get; set; }
public bool ConvertColorsToDialogRemoveColorTags { get; set; }
public bool ConvertColorsToDialogAddNewLines { get; set; }
public bool ConvertColorsToDialogReBreakLines { get; set; }
public string ColumnPasteColumn { get; set; }
public string ColumnPasteOverwriteMode { get; set; }
public string AssaAttachmentFontTextPreview { get; set; }
public string AssaSetPositionTarget { get; set; }
public string VisualSyncStartSize { get; set; }
public Color BlankVideoColor { get; set; }
public bool BlankVideoUseCheckeredImage { get; set; }
public int BlankVideoMinutes { get; set; }
public decimal BlankVideoFrameRate { get; set; }
public Color AssaProgressBarForeColor { get; set; }
public Color AssaProgressBarBackColor { get; set; }
public Color AssaProgressBarTextColor { get; set; }
public int AssaProgressBarHeight { get; set; }
public int AssaProgressBarSplitterWidth { get; set; }
public int AssaProgressBarSplitterHeight { get; set; }
public string AssaProgressBarFontName { get; set; }
public int AssaProgressBarFontSize { get; set; }
public bool AssaProgressBarTopAlign { get; set; }
public string AssaProgressBarTextAlign { get; set; }
public int AssaBgBoxPaddingLeft { get; set; }
public int AssaBgBoxPaddingRight { get; set; }
public int AssaBgBoxPaddingTop { get; set; }
public int AssaBgBoxPaddingBottom { get; set; }
public int AssaBgBoxDrawingMarginV { get; set; }
public int AssaBgBoxDrawingMarginH { get; set; }
public string AssaBgBoxDrawingAlignment { get; set; }
public Color AssaBgBoxColor { get; set; }
public Color AssaBgBoxOutlineColor { get; set; }
public Color AssaBgBoxShadowColor { get; set; }
public Color AssaBgBoxTransparentColor { get; set; }
public string AssaBgBoxStyle { get; set; }
public int AssaBgBoxStyleRadius { get; set; }
public int AssaBgBoxStyleCircleAdjustY { get; set; }
public int AssaBgBoxStyleSpikesStep { get; set; }
public int AssaBgBoxStyleSpikesHeight { get; set; }
public int AssaBgBoxStyleBubblesStep { get; set; }
public int AssaBgBoxStyleBubblesHeight { get; set; }
public int AssaBgBoxOutlineWidth { get; set; }
public int AssaBgBoxLayer { get; set; }
public string AssaBgBoxDrawing { get; set; }
public bool AssaBgBoxDrawingFileWatch { get; set; }
public bool AssaBgBoxDrawingOnly { get; set; }
public string GenVideoFontName { get; set; }
public bool GenVideoFontBold { get; set; }
public decimal GenVideoOutline { get; set; }
public int GenVideoFontSize { get; set; }
public string GenVideoEncoding { get; set; }
public string GenVideoPreset { get; set; }
public string GenVideoCrf { get; set; }
public string GenVideoTune { get; set; }
public string GenVideoAudioEncoding { get; set; }
public bool GenVideoAudioForceStereo { get; set; }
public string GenVideoAudioSampleRate { get; set; }
public bool GenVideoTargetFileSize { get; set; }
public float GenVideoFontSizePercentOfHeight { get; set; }
public bool GenVideoNonAssaBox { get; set; }
public Color GenVideoNonAssaBoxColor { get; set; }
public Color GenVideoNonAssaTextColor { get; set; }
public bool GenVideoNonAssaAlignRight { get; set; }
public bool GenVideoNonAssaFixRtlUnicode { get; set; }
public string GenVideoEmbedOutputExt { get; set; }
public string GenVideoEmbedOutputSuffix { get; set; }
public string GenVideoEmbedOutputReplace { get; set; }
public bool GenVideoDeleteInputVideoFile { get; set; }
public bool GenVideoUseOutputFolder { get; set; }
public string GenVideoOutputFolder { get; set; }
public string GenVideoOutputFileSuffix { get; set; }
public bool VoskPostProcessing { get; set; }
public string VoskModel { get; set; }
public string WhisperChoice { get; set; }
public bool WhisperIgnoreVersion { get; set; }
public bool WhisperDeleteTempFiles { get; set; }
public string WhisperModel { get; set; }
public string WhisperLanguageCode { get; set; }
public string WhisperLocation { get; set; }
public string WhisperCtranslate2Location { get; set; }
public string WhisperPurfviewFasterWhisperLocation { get; set; }
public string WhisperPurfviewFasterWhisperDefaultCmd { get; set; }
public string WhisperXLocation { get; set; }
public string WhisperStableTsLocation { get; set; }
public string WhisperCppModelLocation { get; set; }
public string WhisperExtraSettings { get; set; }
public string WhisperExtraSettingsHistory { get; set; }
public bool WhisperAutoAdjustTimings { get; set; }
public bool WhisperUseLineMaxChars { get; set; }
public bool WhisperPostProcessingAddPeriods { get; set; }
public bool WhisperPostProcessingMergeLines { get; set; }
public bool WhisperPostProcessingSplitLines { get; set; }
public bool WhisperPostProcessingFixCasing { get; set; }
public bool WhisperPostProcessingFixShortDuration { get; set; }
public int AudioToTextLineMaxChars { get; set; }
public int AudioToTextLineMaxCharsJp { get; set; }
public int AudioToTextLineMaxCharsCn { get; set; }
public int BreakLinesLongerThan { get; set; }
public int UnbreakLinesLongerThan { get; set; }
public ToolsSettings()
{
AssaTagTemplates = new List<AssaTemplateItem>();
StartSceneIndex = 1;
EndSceneIndex = 1;
VerifyPlaySeconds = 2;
FixShortDisplayTimesAllowMoveStartTime = false;
RemoveEmptyLinesBetweenText = true;
MusicSymbol = "♪";
MusicSymbolReplace = "♪,â™," + // ♪ + ♫ in UTF-8 opened as ANSI
"<s M/>,<s m/>," + // music symbols by subtitle creator
"#,*,¶"; // common music symbols
UnicodeSymbolsToInsert = "♪;♫;°;☺;☹;♥;©;☮;☯;Σ;∞;≡;⇒;π";
SpellCheckAutoChangeNameCasing = false;
SpellCheckAutoChangeNamesUseSuggestions = false;
OcrFixUseHardcodedRules = true;
OcrGoogleCloudVisionSeHandlesTextMerge = true;
OcrBinaryImageCompareRgbThreshold = 200;
OcrTesseract4RgbThreshold = 200;
OcrAddLetterRow1 = "♪;á;é;í;ó;ö;ő;ú;ü;ű;ç;ñ;å;¿";
OcrAddLetterRow2 = "♫;Á;É;Í;Ó;Ö;Ő;Ú;Ü;Ű;Ç;Ñ;Å;¡";
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;
MicrosoftTranslatorTokenEndpoint = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
GoogleTranslateNoKeyWarningShow = true;
GoogleApiV1ChunkSize = 1500;
GoogleTranslateLastTargetLanguage = "en";
AutoTranslateNllbServeUrl = "http://127.0.0.1:6060/";
AutoTranslateNllbApiUrl = "http://localhost:7860/api/v2/";
AutoTranslateLibreUrl = "http://localhost:5000/";
AutoTranslateSeamlessM4TUrl = "http://localhost:5000/";
AutoTranslateDeepLUrl = "https://api-free.deepl.com/";
ChatGptUrl = "https://api.openai.com/v1/chat/completions";
ChatGptPrompt = "Translate from {0} to {1}, keep punctuation as input, do not censor the translation, give only the output without comments:";
ChatGptModel = "gpt-4o";
LmStudioPrompt = "Translate from {0} to {1}, keep punctuation as input, do not censor the translation, give only the output without comments:";
OllamaApiUrl = "http://localhost:11434/api/generate";
OllamaModels = "llama3,llama2,mistral,dolphin-phi,phi,neural-chat,starling-lm,codellama,llama2-uncensored,llama2:13b,llama2:70b,orca-mini,vicuna,llava,gemma:2b,gemma:7b";
OllamaModel = "llama3";
OllamaPrompt = "Translate from {0} to {1}, keep punctuation as input, do not censor the translation, give only the output without comments or notes:";
AnthropicApiUrl = "https://api.anthropic.com/v1/messages";
AnthropicPrompt = "Translate from {0} to {1}, keep sentences in {1} as they are, do not censor the translation, give only the output without comments:";
AnthropicApiModel = "claude-3-5-sonnet-20240620";
TextToSpeechAzureRegion = "westeurope";
AutoTranslateMaxBytes = 2000;
TextToSpeechAddToVideoFile = true;
TranslateAllowSplit = true;
TranslateViaCopyPasteAutoCopyToClipboard = true;
TranslateViaCopyPasteMaxSize = 5000;
TranslateViaCopyPasteSeparator = ".";
CheckOneLetterWords = true;
SpellCheckEnglishAllowInQuoteAsIng = false;
SpellCheckShowCompletedMessage = true;
ListViewSyntaxColorDurationSmall = true;
ListViewSyntaxColorDurationBig = true;
ListViewSyntaxColorOverlap = true;
ListViewSyntaxColorLongLines = true;
ListViewSyntaxColorWideLines = false;
ListViewSyntaxMoreThanXLines = true;
ListViewSyntaxColorGap = true;
ListViewSyntaxErrorColor = Color.FromArgb(255, 180, 150);
ListViewUnfocusedSelectedColor = Color.LightBlue;
Color1 = Color.Yellow;
Color2 = Color.FromArgb(byte.MaxValue, 0, 0);
Color3 = Color.FromArgb(0, byte.MaxValue, 0);
Color4 = Color.Cyan;
Color5 = Color.Black;
Color6 = Color.White;
Color7 = Color.Orange;
Color8 = Color.Pink;
ListViewShowColumnStartTime = true;
ListViewShowColumnEndTime = true;
ListViewShowColumnDuration = true;
SplitAdvanced = false;
SplitNumberOfParts = 3;
SplitVia = "Lines";
JoinCorrectTimeCodes = true;
SplitLongLinesMax = 90;
NewEmptyTranslationText = string.Empty;
BatchConvertLanguage = string.Empty;
BatchConvertTsOverrideBottomMargin = 5; // pct
BatchConvertTsScreenWidth = 1920;
BatchConvertTsScreenHeight = 1080;
BatchConvertOcrEngine = "Tesseract";
BatchConvertOcrLanguage = "en";
BatchConvertTsOverrideHAlign = "center"; // left center right
BatchConvertTsOverrideHMargin = 5; // pct
BatchConvertTsFileNameAppend = ".{two-letter-country-code}";
BatchConvertMkvLanguageCodeStyle = "2";
ModifySelectionRule = "Contains";
ModifySelectionText = string.Empty;
ImportTextDurationAuto = true;
ImportTextGap = 84;
ImportTextFixedDuration = 2500;
GenerateTimeCodePatterns = "HH:mm:ss;yyyy-MM-dd;dddd dd MMMM yyyy <br>HH:mm:ss;dddd dd MMMM yyyy <br>hh:mm:ss tt;s";
MusicSymbolStyle = "Double"; // 'Double' or 'Single'
ExportFontColor = Color.White;
ExportBorderColor = Color.FromArgb(255, 0, 0, 0);
ExportShadowColor = Color.FromArgb(255, 0, 0, 0);
ExportBoxBorderSize = 8;
ExportBottomMarginUnit = "%";
ExportBottomMarginPercent = 5;
ExportBottomMarginPixels = 15;
ExportLeftRightMarginUnit = "%";
ExportLeftRightMarginPercent = 5;
ExportLeftRightMarginPixels = 15;
ExportHorizontalAlignment = 1; // 1=center (0=left, 2=right)
ExportVobSubSimpleRendering = false;
ExportVobAntiAliasingWithTransparency = true;
ExportBluRayBottomMarginPercent = 5;
ExportBluRayBottomMarginPixels = 20;
ExportBluRayShadow = 1;
Export3DType = 0;
Export3DDepth = 0;
ExportCdgMarginLeft = 160;
ExportCdgMarginBottom = 67;
ExportLastShadowTransparency = 200;
ExportLastFrameRate = 24.0d;
ExportFullFrame = false;
ExportPenLineJoin = "Round";
ExportFcpImageType = "Bmp";
ExportFcpPalNtsc = "PAL";
ExportLastBorderWidth = 4;
BinEditBackgroundColor = Color.Black;
BinEditImageBackgroundColor = Color.Blue;
BinEditTopMargin = 10;
BinEditBottomMargin = 10;
BinEditLeftMargin = 10;
BinEditRightMargin = 10;
BridgeGapMilliseconds = 100;
BridgeGapMillisecondsMinGap = 24;
ChangeCasingNormalFixNames = true;
ExportCustomTemplates = "SubRipÆÆ{number}\r\n{start} --> {end}\r\n{text}\r\n\r\nÆhh:mm:ss,zzzÆ[Do not modify]ÆÆsrtæMicroDVDÆÆ{{start}}{{end}}{text}\r\nÆffÆ||ÆÆsub";
UseNoLineBreakAfter = false;
NoLineBreakAfterEnglish = " Mrs.; Ms.; Mr.; Dr.; a; an; the; my; my own; your; his; our; their; it's; is; are;'s; 're; would;'ll;'ve;'d; will; that; which; who; whom; whose; whichever; whoever; wherever; each; either; every; all; both; few; many; sevaral; all; any; most; been; been doing; none; some; my own; your own; his own; her own; our own; their own; I; she; he; as per; as regards; into; onto; than; where as; abaft; aboard; about; above; across; afore; after; against; along; alongside; amid; amidst; among; amongst; anenst; apropos; apud; around; as; aside; astride; at; athwart; atop; barring; before; behind; below; beneath; beside; besides; between; betwixt; beyond; but; by; circa; ca; concerning; despite; down; during; except; excluding; following; for; forenenst; from; given; in; including; inside; into; lest; like; minus; modulo; near; next; of; off; on; onto; opposite; out; outside; over; pace; past; per; plus; pro; qua; regarding; round; sans; save; since; than; through; thru; throughout; thruout; till; to; toward; towards; under; underneath; unlike; until; unto; up; upon; versus; vs; via; vice; with; within; without; considering; respecting; one; two; another; three; our; five; six; seven; eight; nine; ten; eleven; twelve; thirteen; fourteen; fifteen; sixteen; seventeen; eighteen; nineteen; twenty; thirty; forty; fifty; sixty; seventy; eighty; ninety; hundred; thousand; million; billion; trillion; while; however; what; zero; little; enough; after; although; and; as; if; though; although; because; before; both; but; even; how; than; nor; or; only; unless; until; yet; was; were";
FindHistory = new List<string>();
ExportTextFormatText = "None";
ExportTextRemoveStyling = true;
ExportTextShowLineNumbersNewLine = true;
ExportTextShowTimeCodesNewLine = true;
ExportTextNewLineAfterText = true;
ExportTextNewLineBetweenSubtitles = true;
ImportTextLineBreak = "|";
ImportTextAutoSplitNumberOfLines = 2;
ImportTextAutoSplitAtBlank = true;
ImportTextAutoBreakAtEndMarkerText = ".!?";
ImportTextAutoBreakAtEnd = true;
MoveStartEndMs = 100;
AdjustDurationSeconds = 0.1m;
AdjustDurationPercent = 120;
AdjustDurationExtendOnly = true;
AdjustDurationExtendEnforceDurationLimits = true;
AdjustDurationExtendCheckShotChanges = true;
AutoBreakCommaBreakEarly = false;
AutoBreakDashEarly = true;
AutoBreakLineEndingEarly = false;
AutoBreakUsePixelWidth = true;
AutoBreakPreferBottomHeavy = true;
AutoBreakPreferBottomPercent = 5;
ApplyMinimumDurationLimit = true;
ApplyMinimumDurationLimitCheckShotChanges = true;
ApplyMaximumDurationLimit = true;
MergeShortLinesMaxGap = 250;
MergeShortLinesMaxChars = 55;
MergeShortLinesOnlyContinuous = true;
MergeTextWithSameTimeCodesMaxGap = 250;
MergeTextWithSameTimeCodesReBreakLines = false;
MergeLinesWithSameTextMaxMs = 250;
MergeLinesWithSameTextIncrement = true;
MergeTextWithSameTimeCodesMakeDialog = false;
ConvertColorsToDialogRemoveColorTags = true;
ConvertColorsToDialogAddNewLines = true;
ConvertColorsToDialogReBreakLines = false;
ColumnPasteColumn = "all";
ColumnPasteOverwriteMode = "overwrite";
AssaAttachmentFontTextPreview =
"Hello World!" + Environment.NewLine +
"こんにちは世界" + Environment.NewLine +
"你好世界!" + Environment.NewLine +
"1234567890";
BlankVideoColor = Color.CadetBlue;
BlankVideoUseCheckeredImage = true;
BlankVideoMinutes = 2;
BlankVideoFrameRate = 23.976m;
AssaProgressBarForeColor = Color.FromArgb(200, 200, 0, 0);
AssaProgressBarBackColor = Color.FromArgb(150, 80, 80, 80);
AssaProgressBarTextColor = Color.White;
AssaProgressBarHeight = 40;
AssaProgressBarSplitterWidth = 2;
AssaProgressBarSplitterHeight = 40;
AssaProgressBarFontName = "Arial";
AssaProgressBarFontSize = 30;
AssaProgressBarTextAlign = "left";
AssaBgBoxPaddingLeft = 10;
AssaBgBoxPaddingRight = 10;
AssaBgBoxPaddingTop = 6;
AssaBgBoxPaddingBottom = 6;
AssaBgBoxColor = Color.FromArgb(200, 0, 0, 0);
AssaBgBoxOutlineColor = Color.FromArgb(200, 80, 80, 80);
AssaBgBoxShadowColor = Color.FromArgb(100, 0, 0, 0);
AssaBgBoxTransparentColor = Color.Cyan;
AssaBgBoxStyle = "square";
AssaBgBoxStyleRadius = 30;
AssaBgBoxStyleCircleAdjustY = 30;
AssaBgBoxStyleSpikesStep = 15;
AssaBgBoxStyleSpikesHeight = 30;
AssaBgBoxStyleBubblesStep = 75;
AssaBgBoxStyleBubblesHeight = 40;
AssaBgBoxOutlineWidth = 0;
AssaBgBoxLayer = -11893;
AssaBgBoxDrawingFileWatch = true;
GenVideoEncoding = "libx264";
GenVideoPreset = "medium";
GenVideoCrf = "23";
GenVideoTune = "film";
GenVideoAudioEncoding = "copy";
GenVideoAudioForceStereo = true;
GenVideoAudioSampleRate = "48000";
GenVideoFontBold = true;
GenVideoOutline = 6;
GenVideoFontSizePercentOfHeight = 0.078f;
GenVideoNonAssaBox = true;
GenVideoNonAssaBoxColor = Color.FromArgb(150, 0, 0, 0);
GenVideoNonAssaTextColor = Color.White;
GenVideoEmbedOutputSuffix = "embed";
GenVideoEmbedOutputReplace = "embed" + Environment.NewLine + "SoftSub" + Environment.NewLine + "SoftSubbed";
GenVideoOutputFileSuffix = "_new";
VoskPostProcessing = true;
WhisperChoice = Configuration.IsRunningOnWindows ? AudioToText.WhisperChoice.PurfviewFasterWhisper : AudioToText.WhisperChoice.OpenAi;
WhisperDeleteTempFiles = true;
WhisperPurfviewFasterWhisperDefaultCmd = "--standard";
WhisperExtraSettings = "";
WhisperLanguageCode = "en";
WhisperAutoAdjustTimings = true;
WhisperPostProcessingAddPeriods = false;
WhisperPostProcessingMergeLines = true;
WhisperPostProcessingSplitLines = true;
WhisperPostProcessingFixCasing = false;
WhisperPostProcessingFixShortDuration = true;
AudioToTextLineMaxChars = 86;
AudioToTextLineMaxCharsJp = 32;
AudioToTextLineMaxCharsCn = 36;
}
}
}

View File

@ -0,0 +1,18 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class VerifyCompletenessSettings
{
public ListSortEnum ListSort { get; set; }
public enum ListSortEnum : int
{
Coverage = 0,
Time = 1,
}
public VerifyCompletenessSettings()
{
ListSort = ListSortEnum.Coverage;
}
}
}

View File

@ -0,0 +1,87 @@
using System.Drawing;
namespace Nikse.SubtitleEdit.Core.Settings
{
public class VideoControlsSettings
{
public string CustomSearchText1 { get; set; }
public string CustomSearchText2 { get; set; }
public string CustomSearchText3 { get; set; }
public string CustomSearchText4 { get; set; }
public string CustomSearchText5 { get; set; }
public string CustomSearchUrl1 { get; set; }
public string CustomSearchUrl2 { get; set; }
public string CustomSearchUrl3 { get; set; }
public string CustomSearchUrl4 { get; set; }
public string CustomSearchUrl5 { get; set; }
public string LastActiveTab { get; set; }
public bool WaveformDrawGrid { get; set; }
public bool WaveformDrawCps { get; set; }
public bool WaveformDrawWpm { get; set; }
public bool WaveformAllowOverlap { get; set; }
public bool WaveformFocusOnMouseEnter { get; set; }
public bool WaveformListViewFocusOnMouseEnter { get; set; }
public bool WaveformSetVideoPositionOnMoveStartEnd { get; set; }
public bool WaveformSingleClickSelect { get; set; }
public bool WaveformSnapToShotChanges { get; set; }
public int WaveformShotChangeStartTimeBeforeMs { get; set; }
public int WaveformShotChangeStartTimeAfterMs { get; set; }
public int WaveformShotChangeEndTimeBeforeMs { get; set; }
public int WaveformShotChangeEndTimeAfterMs { get; set; }
public int WaveformBorderHitMs { get; set; }
public Color WaveformGridColor { get; set; }
public Color WaveformColor { get; set; }
public Color WaveformSelectedColor { get; set; }
public Color WaveformBackgroundColor { get; set; }
public Color WaveformTextColor { get; set; }
public Color WaveformCursorColor { get; set; }
public Color WaveformChaptersColor { get; set; }
public int WaveformTextSize { get; set; }
public bool WaveformTextBold { get; set; }
public string WaveformDoubleClickOnNonParagraphAction { get; set; }
public string WaveformRightClickOnNonParagraphAction { get; set; }
public bool WaveformMouseWheelScrollUpIsForward { get; set; }
public bool WaveformLabelShowCodec { get; set; }
public bool GenerateSpectrogram { get; set; }
public string SpectrogramAppearance { get; set; }
public int WaveformMinimumSampleRate { get; set; }
public double WaveformSeeksSilenceDurationSeconds { get; set; }
public double WaveformSeeksSilenceMaxVolume { get; set; }
public bool WaveformUnwrapText { get; set; }
public bool WaveformHideWpmCpsLabels { get; set; }
public VideoControlsSettings()
{
CustomSearchText1 = "The Free Dictionary";
CustomSearchUrl1 = "https://www.thefreedictionary.com/{0}";
CustomSearchText2 = "Wikipedia";
CustomSearchUrl2 = "https://en.wikipedia.org/wiki?search={0}";
CustomSearchText3 = "DuckDuckGo";
CustomSearchUrl3 = "https://duckduckgo.com/?q={0}";
LastActiveTab = "Translate";
WaveformDrawGrid = true;
WaveformAllowOverlap = false;
WaveformBorderHitMs = 15;
WaveformGridColor = Color.FromArgb(255, 20, 20, 18);
WaveformColor = Color.FromArgb(255, 160, 240, 30);
WaveformSelectedColor = Color.FromArgb(255, 230, 0, 0);
WaveformBackgroundColor = Color.Black;
WaveformTextColor = Color.Gray;
WaveformCursorColor = Color.Turquoise;
WaveformChaptersColor = Color.FromArgb(255, 104, 33, 122);
WaveformTextSize = 9;
WaveformTextBold = true;
WaveformDoubleClickOnNonParagraphAction = "PlayPause";
WaveformDoubleClickOnNonParagraphAction = string.Empty;
WaveformMouseWheelScrollUpIsForward = true;
WaveformLabelShowCodec = true;
SpectrogramAppearance = "OneColorGradient";
WaveformMinimumSampleRate = 126;
WaveformSeeksSilenceDurationSeconds = 0.3;
WaveformSeeksSilenceMaxVolume = 0.1;
WaveformSnapToShotChanges = true;
}
}
}

View File

@ -0,0 +1,77 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class VobSubOcrSettings
{
public int XOrMorePixelsMakesSpace { get; set; }
public double AllowDifferenceInPercent { get; set; }
public double BlurayAllowDifferenceInPercent { get; set; }
public string LastImageCompareFolder { get; set; }
public int LastModiLanguageId { get; set; }
public string LastOcrMethod { get; set; }
public string TesseractLastLanguage { get; set; }
public bool UseTesseractFallback { get; set; }
public bool UseItalicsInTesseract { get; set; }
public int TesseractEngineMode { get; set; }
public bool UseMusicSymbolsInTesseract { get; set; }
public bool RightToLeft { get; set; }
public bool TopToBottom { get; set; }
public int DefaultMillisecondsForUnknownDurations { get; set; }
public bool FixOcrErrors { get; set; }
public bool PromptForUnknownWords { get; set; }
public bool GuessUnknownWords { get; set; }
public bool AutoBreakSubtitleIfMoreThanTwoLines { get; set; }
public double ItalicFactor { get; set; }
public bool LineOcrDraw { get; set; }
public int LineOcrMinHeightSplit { get; set; }
public bool LineOcrAdvancedItalic { get; set; }
public string LineOcrLastLanguages { get; set; }
public string LineOcrLastSpellCheck { get; set; }
public int LineOcrLinesToAutoGuess { get; set; }
public int LineOcrMinLineHeight { get; set; }
public int LineOcrMaxLineHeight { get; set; }
public int LineOcrMaxErrorPixels { get; set; }
public string LastBinaryImageCompareDb { get; set; }
public string LastBinaryImageSpellCheck { get; set; }
public bool BinaryAutoDetectBestDb { get; set; }
public string LastTesseractSpellCheck { get; set; }
public bool CaptureTopAlign { get; set; }
public int UnfocusedAttentionBlinkCount { get; set; }
public int UnfocusedAttentionPlaySoundCount { get; set; }
public string CloudVisionApiKey { get; set; }
public string CloudVisionLanguage { get; set; }
public bool CloudVisionSendOriginalImages { get; set; }
public VobSubOcrSettings()
{
XOrMorePixelsMakesSpace = 8;
AllowDifferenceInPercent = 1.0;
BlurayAllowDifferenceInPercent = 7.5;
LastImageCompareFolder = "English";
LastModiLanguageId = 9;
LastOcrMethod = "Tesseract";
UseItalicsInTesseract = true;
TesseractEngineMode = 3; // Default, based on what is available (T4 docs)
UseMusicSymbolsInTesseract = true;
UseTesseractFallback = true;
RightToLeft = false;
TopToBottom = true;
DefaultMillisecondsForUnknownDurations = 5000;
FixOcrErrors = true;
PromptForUnknownWords = true;
GuessUnknownWords = true;
AutoBreakSubtitleIfMoreThanTwoLines = true;
ItalicFactor = 0.2f;
LineOcrLinesToAutoGuess = 100;
LineOcrMaxErrorPixels = 45;
LastBinaryImageCompareDb = "Latin+Latin";
BinaryAutoDetectBestDb = true;
CaptureTopAlign = false;
UnfocusedAttentionBlinkCount = 50;
UnfocusedAttentionPlaySoundCount = 1;
CloudVisionApiKey = string.Empty;
CloudVisionLanguage = "en";
CloudVisionSendOriginalImages = false;
}
}
}

View File

@ -0,0 +1,15 @@
namespace Nikse.SubtitleEdit.Core.Settings
{
public class WordListSettings
{
public string LastLanguage { get; set; }
public string NamesUrl { get; set; }
public bool UseOnlineNames { get; set; }
public WordListSettings()
{
LastLanguage = "en-US";
NamesUrl = "https://raw.githubusercontent.com/SubtitleEdit/subtitleedit/main/Dictionaries/names.xml";
}
}
}

View File

@ -6,6 +6,7 @@ using System.Drawing;
using System.Drawing.Text;
using System.Globalization;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Controls
{

View File

@ -8,6 +8,7 @@ using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Controls
{

View File

@ -11,6 +11,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.Assa
{

View File

@ -13,6 +13,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
namespace Nikse.SubtitleEdit.Forms.Assa

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.Assa
{

View File

@ -5,6 +5,7 @@ using System.Linq;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms.Assa

View File

@ -5,6 +5,7 @@ using System.Linq;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Logic;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;

View File

@ -2,6 +2,7 @@
using System.Drawing;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes

View File

@ -4,6 +4,7 @@ using Nikse.SubtitleEdit.Core.SubtitleFormats;
using Nikse.SubtitleEdit.Logic;
using System;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{

View File

@ -5,6 +5,7 @@ using System;
using System.Globalization;
using System.Windows.Forms;
using System.Xml.Linq;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.DCinema
{

View File

@ -5,6 +5,7 @@ using System;
using System.Globalization;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.DCinema
{

View File

@ -22,6 +22,7 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
namespace Nikse.SubtitleEdit.Forms
@ -5861,7 +5862,7 @@ $DROP=[DROPVALUE]" + Environment.NewLine + Environment.NewLine +
}
}
private void SubtitleListView1InitializeLanguage(LanguageStructure.General general, Core.Common.Settings settings)
private void SubtitleListView1InitializeLanguage(LanguageStructure.General general, Settings settings)
{
var columnIndexNumber = 0;
var columnIndexStart = 1;

View File

@ -47,6 +47,7 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Forms.Tts;
using CheckForUpdatesHelper = Nikse.SubtitleEdit.Logic.CheckForUpdatesHelper;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;

View File

@ -9,6 +9,7 @@ using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Controls.Adapters;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
namespace Nikse.SubtitleEdit.Forms

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms
{

View File

@ -28,6 +28,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
using Timer = System.Windows.Forms.Timer;

View File

@ -16,6 +16,7 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
namespace Nikse.SubtitleEdit.Forms.Options
@ -131,7 +132,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
Init();
_loading = false;
_oldSettings = Core.Common.Settings.CustomSerialize(Configuration.Settings);
_oldSettings = Core.Settings.Settings.CustomSerialize(Configuration.Settings);
}
public void Init()
@ -2455,7 +2456,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
}
}
if (_oldSettings == Core.Common.Settings.CustomSerialize(Configuration.Settings))
if (_oldSettings == Core.Settings.Settings.CustomSerialize(Configuration.Settings))
{
DialogResult = DialogResult.Cancel;
return;

View File

@ -8,6 +8,7 @@ using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
namespace Nikse.SubtitleEdit.Forms.Options

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms
{

View File

@ -9,6 +9,7 @@ using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.SubtitleFormats;
using MessageBox = Nikse.SubtitleEdit.Forms.SeMsgBox.MessageBox;
using System.Threading;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms
{

View File

@ -2,6 +2,7 @@
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.AutoTranslate;
using Nikse.SubtitleEdit.Core.Common;
using Nikse.SubtitleEdit.Core.Settings;
using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms.Translate

View File

@ -8,6 +8,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Forms.Translate
{

View File

@ -7,7 +7,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using static Nikse.SubtitleEdit.Core.Common.VerifyCompletenessSettings;
using static Nikse.SubtitleEdit.Core.Settings.VerifyCompletenessSettings;
namespace Nikse.SubtitleEdit.Forms
{

View File

@ -14,6 +14,7 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core.Settings;
namespace Nikse.SubtitleEdit.Logic
{