mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-28 15:02:35 +01:00
f411ce99e1
TODO: Localication + "Netflix fix errors"
55 lines
2.4 KiB
C#
55 lines
2.4 KiB
C#
using System.Text.RegularExpressions;
|
|
|
|
namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
|
|
{
|
|
public class NetflixCheckStartNumberSpellOut : INetflixQualityChecker
|
|
{
|
|
private static readonly Regex NumberStart = new Regex(@"^\d+ [A-Za-z]", RegexOptions.Compiled);
|
|
private static readonly Regex NumberStartInside = new Regex(@"[\.,!] \d+ [A-Za-z]", RegexOptions.Compiled);
|
|
private static readonly Regex NumberStartInside2 = new Regex(@"[\.,!]\r\n\d+ [A-Za-z]", RegexOptions.Compiled);
|
|
|
|
/// <summary>
|
|
/// When a number begins a sentence, it should always be spelled out.
|
|
/// </summary>
|
|
public void Check(Subtitle subtitle, NetflixQualityController controller)
|
|
{
|
|
foreach (Paragraph p in subtitle.Paragraphs)
|
|
{
|
|
string newText = p.Text;
|
|
|
|
var m = NumberStart.Match(newText);
|
|
while (m.Success)
|
|
{
|
|
int length = m.Length - 2;
|
|
newText = newText.Remove(m.Index, length).Insert(m.Index, NetflixHelper.ConvertNumberToString(m.Value.Substring(0, length), true, controller.Language));
|
|
m = NumberStart.Match(newText, m.Index + 1);
|
|
}
|
|
|
|
m = NumberStartInside.Match(newText);
|
|
while (m.Success)
|
|
{
|
|
int length = m.Length - 4;
|
|
newText = newText.Remove(m.Index + 2, length).Insert(m.Index + 2, NetflixHelper.ConvertNumberToString(m.Value.Substring(2, length), true, controller.Language));
|
|
m = NumberStartInside.Match(newText, m.Index + 1);
|
|
}
|
|
|
|
m = NumberStartInside2.Match(newText);
|
|
while (m.Success)
|
|
{
|
|
int length = m.Length - 5;
|
|
newText = newText.Remove(m.Index + 3, length).Insert(m.Index + 3, NetflixHelper.ConvertNumberToString(m.Value.Substring(3, length), true, controller.Language));
|
|
m = NumberStartInside2.Match(newText, m.Index + 1);
|
|
}
|
|
|
|
if (newText != p.Text)
|
|
{
|
|
var fixedParagraph = new Paragraph(p, false) { Text = newText };
|
|
string comment = "When a number begins a sentence, it should always be spelled out";
|
|
controller.AddRecord(p, fixedParagraph, comment);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|