mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Working on Fix common errors - Fix spanish questionmark/exclamation + inverted marks - thx Mike
Also added unit tests (now 100 :) git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1977 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
c1d0a92427
commit
dafab010fc
@ -4039,6 +4039,14 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
if (last != null && p.Text.Contains(mark) && !p.Text.Contains(inverseMark) && last.Text.Contains(inverseMark) && !last.Text.Contains(mark))
|
||||
skip = true;
|
||||
|
||||
if (!skip && Utilities.CountTagInText(p.Text, mark) == Utilities.CountTagInText(p.Text, inverseMark) &&
|
||||
Utilities.RemoveHtmlTags(p.Text).TrimStart(inverseMark[0]).Contains(inverseMark) == false &&
|
||||
Utilities.RemoveHtmlTags(p.Text).TrimEnd(mark[0]).Contains(mark) == false)
|
||||
{
|
||||
skip = true;
|
||||
}
|
||||
|
||||
|
||||
if (!skip)
|
||||
{
|
||||
int startIndex = 0;
|
||||
@ -4102,8 +4110,20 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
part = part.Substring(speakerEnd + 1);
|
||||
}
|
||||
|
||||
StripableText st = new StripableText(part);
|
||||
p.Text = p.Text.Remove(j, markIndex - j + 1).Insert(j, speaker + st.Pre + inverseMark + st.StrippedText + st.Post);
|
||||
var st = new StripableText(part);
|
||||
if (j == 0 && mark == "!" && st.Pre == "¿" && Utilities.CountTagInText(p.Text, mark) == 1 && Utilities.RemoveHtmlTags(p.Text).EndsWith(mark))
|
||||
{
|
||||
p.Text = inverseMark + p.Text;
|
||||
}
|
||||
else if (j == 0 && mark == "?" && st.Pre == "¡" && Utilities.CountTagInText(p.Text, mark) == 1 && Utilities.RemoveHtmlTags(p.Text).EndsWith(mark))
|
||||
{
|
||||
p.Text = inverseMark + p.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
p.Text = p.Text.Remove(j, markIndex - j + 1).Insert(j, speaker + st.Pre + inverseMark + st.StrippedText + st.Post);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -421,6 +421,36 @@ namespace Test
|
||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "¡Cómo estás!");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DeploymentItem("SubtitleEdit.exe")]
|
||||
public void FixSpanishExclamationMarkDouble()
|
||||
{
|
||||
var target = new FixCommonErrors_Accessor();
|
||||
InitializeFixCommonErrorsLine(target, "¡¡PARA!!");
|
||||
target.FixSpanishInvertedQuestionAndExclamationMarks();
|
||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "¡¡PARA!!");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DeploymentItem("SubtitleEdit.exe")]
|
||||
public void FixSpanishExclamationMarkTriple()
|
||||
{
|
||||
var target = new FixCommonErrors_Accessor();
|
||||
InitializeFixCommonErrorsLine(target, "¡¡¡PARA!!!");
|
||||
target.FixSpanishInvertedQuestionAndExclamationMarks();
|
||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "¡¡¡PARA!!!");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DeploymentItem("SubtitleEdit.exe")]
|
||||
public void FixSpanishExclamationMarkAndQuestionMark()
|
||||
{
|
||||
var target = new FixCommonErrors_Accessor();
|
||||
InitializeFixCommonErrorsLine(target, "¿Cómo estás?!");
|
||||
target.FixSpanishInvertedQuestionAndExclamationMarks();
|
||||
Assert.AreEqual(target._subtitle.Paragraphs[0].Text, "¡¿Cómo estás?!");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user