2020-04-17 07:40:50 +02:00
|
|
|
|
using Nikse.SubtitleEdit.Core.Interfaces;
|
2019-02-21 23:41:44 +01:00
|
|
|
|
|
|
|
|
|
namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
2015-09-19 09:28:36 +02:00
|
|
|
|
{
|
2020-02-16 08:08:19 +01:00
|
|
|
|
public class FixHyphensInDialog : IFixCommonError
|
2015-09-19 09:28:36 +02:00
|
|
|
|
{
|
|
|
|
|
public void Fix(Subtitle subtitle, IFixCallbacks callbacks)
|
|
|
|
|
{
|
|
|
|
|
var language = Configuration.Settings.Language.FixCommonErrors;
|
2020-02-16 08:08:19 +01:00
|
|
|
|
string fixAction = string.Format(language.FixHyphensInDialogs, Configuration.Settings.General.DialogStyle);
|
2015-09-19 09:28:36 +02:00
|
|
|
|
int iFixes = 0;
|
2020-04-17 07:40:50 +02:00
|
|
|
|
var dialogHelper = new DialogSplitMerge
|
|
|
|
|
{
|
|
|
|
|
DialogStyle = Configuration.Settings.General.DialogStyle,
|
2020-04-17 09:12:20 +02:00
|
|
|
|
TwoLetterLanguageCode = callbacks.Language,
|
2020-04-17 07:40:50 +02:00
|
|
|
|
ContinuationStyle = Configuration.Settings.General.ContinuationStyle
|
|
|
|
|
};
|
2015-09-19 09:28:36 +02:00
|
|
|
|
for (int i = 0; i < subtitle.Paragraphs.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var p = subtitle.Paragraphs[i];
|
|
|
|
|
if (callbacks.AllowFix(p, fixAction))
|
|
|
|
|
{
|
|
|
|
|
string oldText = p.Text;
|
2020-02-16 08:08:19 +01:00
|
|
|
|
string text = dialogHelper.FixDashesAndSpaces(p.Text);
|
2015-09-19 09:28:36 +02:00
|
|
|
|
if (text != oldText)
|
|
|
|
|
{
|
|
|
|
|
p.Text = text;
|
|
|
|
|
iFixes++;
|
|
|
|
|
callbacks.AddFixToListView(p, fixAction, oldText, p.Text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-02-16 08:08:19 +01:00
|
|
|
|
callbacks.UpdateFixStatus(iFixes, fixAction, language.XHyphensInDialogsFixed);
|
2015-09-19 09:28:36 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|