Merge pull request #1573 from xylographe/upkeep

Automated upkeep
This commit is contained in:
Nikolaj Olsson 2016-02-18 20:07:49 +01:00
commit d331c4c2eb
45 changed files with 633 additions and 642 deletions

View File

@ -1,4 +1,4 @@
<words>
<words>
<word>50s</word>
<word>9/11</word>
<word>a.m.</word>

View File

@ -246,7 +246,6 @@
<Word from="Cho/r" to="Choir" />
<Word from="cHucKl_Es" to="CHUCKLES" />
<Word from="CIark" to="Clark" />
<Word from="CIass" to="Class" />
<Word from="CIear" to="Clear" />
<Word from="circumcised_" to="circumcised." />
<Word from="ckay" to="okay" />
@ -1113,7 +1112,6 @@
<Word from="Persona/4/" to="Personally" />
<Word from="Persona/y" to="Personally" />
<Word from="persors" to="person's" />
<Word from="PIace" to="Place" />
<Word from="PIain" to="Plain" />
<Word from="PIease" to="Please" />
<Word from="PIeasure" to="Pleasure" />
@ -1818,11 +1816,6 @@
<Word from="lron" to="Iron" />
<Word from="It'syour" to="It's your" />
<Word from="lfstill" to="if still" />
<Word from="internationaljudges" to="international judges" />
<Word from="YQu" to="You" />
<Word from="onJanuaw" to="on January" />
<Word from="Shdsjust" to="She's just" />
<Word from="HeyJennifer" to="Hey Jennifer" />
</WholeWords>
<PartialWordsAlways>
<!-- Will be replaced always -->

View File

@ -730,7 +730,7 @@
<RegEx find="interesantn" replaceWith="zanimljiv" />
<RegEx find="Interesantn" replaceWith="Zanimljiv" />
<RegEx find="([iI])nteresova" replaceWith="$1nteresira" />
<RegEx find="([iI])ntervjuis" replaceWith="$1ntervjuir" />
<RegEx find="([iI])ntervjuis" replaceWith="$1ntervjuir" />
<RegEx find="([iI])ntezivn" replaceWith="$1ntenzivn" />
<RegEx find="([iI])seče" replaceWith="$1zreže" />
<RegEx find="([iI])spoljava" replaceWith="$1zražava" />
@ -807,8 +807,8 @@
<RegEx find="([kK])oristić" replaceWith="$1oristit ć" />
<RegEx find="([kK])oriš[ćč]en" replaceWith="$1orišten" />
<RegEx find="([kK])orj?en" replaceWith="$1orijen" />
<RegEx find="([kK])ritikuje" replaceWith="$1ritizira" />
<RegEx find="([kK])rofn" replaceWith="$1rafn" />
<RegEx find="([kK])ritikuje" replaceWith="$1ritizira" />
<RegEx find="([kK])rofn" replaceWith="$1rafn" />
<RegEx find="([kK])rompir" replaceWith="$1rumpir" />
<RegEx find="\b([kK])rst([au]|ića?)?\b" replaceWith="$1riž$2" />
<RegEx find="\b([kK])rstov(e|ima)\b" replaceWith="$1rižev$2" />
@ -1476,7 +1476,7 @@
<RegEx find="Džulij" replaceWith="Juli" />
<RegEx find="Ejmi" replaceWith="Amy" />
<RegEx find="Ejpril" replaceWith="April" />
<RegEx find="([EA])jnštajn" replaceWith="Einstein" />
<RegEx find="[EA]jnštajn" replaceWith="Einstein" />
<RegEx find="Endi" replaceWith="Andy" />
<RegEx find="Ešli" replaceWith="Ashley" />
<RegEx find="Filadelfij" replaceWith="Philadelphi" />
@ -1627,4 +1627,4 @@
<!-- Skraćenice bez razmaka -->
<RegEx find="d\. o\.o\." replaceWith="d.o.o." />
</RegularExpressions>
</OCRFixReplaceList>
</OCRFixReplaceList>

View File

@ -340,7 +340,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
if (regions.Contains("top"))
region = "top";
else if (regions.Contains("topCenter"))
region = "topCenter";
region = "topCenter";
}
text = Utilities.RemoveSsaTags(text);
@ -452,7 +452,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
string xmlSpace = GetEffect(p, "xml:space");
if (!string.IsNullOrEmpty(xmlSpace))
{
XmlAttribute xmlSpaceAttribute = xml.CreateAttribute("xml:space");
XmlAttribute xmlSpaceAttribute = xml.CreateAttribute("xml:space");
xmlSpaceAttribute.InnerText = xmlSpace;
paragraph.Attributes.Append(xmlSpaceAttribute);
}
@ -496,7 +496,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
ttsExtentAttribute.InnerText = ttsExtent;
paragraph.Attributes.Append(ttsExtentAttribute);
}
string ttsTextAlign = GetEffect(p, "tts:textAlign");
if (!string.IsNullOrEmpty(ttsTextAlign))
{
@ -691,7 +691,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
if (node.Attributes["tts:textAlign"] != null)
{
SetEffect(p, "tts:textAlign", node.Attributes["tts:textAlign"].Value);
}
}
if (node.ParentNode.Name == "div")
{

View File

@ -7,7 +7,7 @@ using System.Text.RegularExpressions;
namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
/// <summary>
/// Timeline Ascii export - THE MOVIE TITRE EDITOR - http://www.pld.ttu.ee/~priidu/timeline/ by priidu@pld.ttu.ee
/// Timeline Ascii export - THE MOVIE TITRE EDITOR - http://www.pld.ttu.ee/~priidu/timeline/ by priidu@pld.ttu.ee
///
/// Sample:
/// 1.

View File

@ -15,6 +15,7 @@ namespace Nikse.SubtitleEdit.Forms
private readonly LanguageStructure.RemoveTextFromHearImpaired _language;
private readonly RemoveTextForHI _removeTextForHiLib;
private Dictionary<Paragraph, string> _fixes;
public FormRemoveTextForHearImpaired()
{
InitializeComponent();

View File

@ -13,7 +13,7 @@ using Nikse.SubtitleEdit.Core.SpellCheck;
namespace Nikse.SubtitleEdit.Forms
{
public sealed partial class SpellCheck : Form, IDoSpell
{
{
private List<UndoObject> _undoList = new List<UndoObject>();
private SpellCheckAction _action = SpellCheckAction.Skip;
private List<string> _suggestions;
@ -21,7 +21,7 @@ namespace Nikse.SubtitleEdit.Forms
public SpellCheckAction Action { get { return _action; } set { _action = value; } }
public string ChangeWord { get { return textBoxWord.Text; } set { textBoxWord.Text = value; } }
public string ChangeWholeText { get { return textBoxWholeText.Text; } }
public bool AutoFixNames { get { return checkBoxAutoChangeNames.Checked; } }
public bool AutoFixNames { get { return checkBoxAutoChangeNames.Checked; } }
private SpellCheckWordLists _spellCheckWordLists;
private List<string> _skipAllList = new List<string>();
@ -690,7 +690,7 @@ namespace Nikse.SubtitleEdit.Forms
}
}
private void SetWords(string s)
{
s = _spellCheckWordLists.ReplaceHtmlTagsWithBlanks(s);

View File

@ -1249,4 +1249,4 @@ Keep changes?</KeepChangesMessage>
<ShowWaveformOnly>عرض شكل الموجة فقط</ShowWaveformOnly>
<ShowSpectrogramOnly>عرض الفيديو فقط</ShowSpectrogramOnly>
</Waveform>
</Language>
</Language>

View File

@ -616,9 +616,6 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<FixMusicNotationExample>'âTª sweet dreams are' -&gt; '♫ sweet dreams are'</FixMusicNotationExample>
<NumberOfImportantLogMessages>{0} важни съобщения с отчети!</NumberOfImportantLogMessages>
<FixedOkXY>Поправено и OK - '{0}': {1}</FixedOkXY>
<FixOcrErrorExample></FixOcrErrorExample>
<FixSpaceBetweenNumbersExample></FixSpaceBetweenNumbersExample>
<FixDialogsOneLineExample></FixDialogsOneLineExample>
</FixCommonErrors>
<GetDictionaries>
<Title>Кой речник желаете?</Title>
@ -1152,7 +1149,7 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<MatroskaFiles>Matroska файлове</MatroskaFiles>
<NoSubtitlesFound>Няма намерени субтитри</NoSubtitlesFound>
<NotAValidMatroskaFileX>Това е невалиден Matroska файл: {0}</NotAValidMatroskaFileX>
<BlurayNotSubtitlesFound>Blu-ray sup файла не съдържа никакви субтитри или е повреден - опитайте да го демуксните отново </BlurayNotSubtitlesFound>
<BlurayNotSubtitlesFound>Blu-ray sup файла не съдържа никакви субтитри или е повреден - опитайте да го демуксните отново</BlurayNotSubtitlesFound>
<ParsingMatroskaFile>Обработка на файла Matroska. Моля, изчакайте...</ParsingMatroskaFile>
<ParsingTransportStreamFile>Анализ на Transport Stream файл. Изчакайте, моля...</ParsingTransportStreamFile>
<BeforeImportFromMatroskaFile>Преди внасянето на субтитри от файла Matroska</BeforeImportFromMatroskaFile>
@ -2105,4 +2102,4 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<Title>WebVTT - задаване на нов глас</Title>
<VoiceName>Име на гласа</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -618,7 +618,7 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<FixedOkXY>Fixats i OK - '{0}': {1}</FixedOkXY>
<FixOcrErrorExample>D0n't -&gt; Don't</FixOcrErrorExample>
<FixSpaceBetweenNumbersExample>1 100 -&gt; 1100</FixSpaceBetweenNumbersExample>
<FixDialogsOneLineExample>Hi John! - Hi Ida! -&gt; Hi John!&lt;br /&gt;- Hi Ida! </FixDialogsOneLineExample>
<FixDialogsOneLineExample>Hi John! - Hi Ida! -&gt; Hi John!&lt;br /&gt;- Hi Ida!</FixDialogsOneLineExample>
</FixCommonErrors>
<GetDictionaries>
<Title>Us calen diccionaris?</Title>
@ -2099,4 +2099,4 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<Title>WebVTT - estableix veu nova</Title>
<VoiceName>Nom de veu</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2116,4 +2116,4 @@ Zachovat změny?</KeepChangesMessage>
<Title>WebVTT - nastavit nový hlas</Title>
<VoiceName>Název hlasu</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2116,4 +2116,4 @@ kan redigere i samme undertekst fil (fælles online projekt)</Information>
<Title>WebVTT - angiv ny stemme</Title>
<VoiceName>Stemme-navn</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2121,4 +2121,4 @@ gleiche Untertiteldatei bearbeiten können (Zusammenarbeit)</Information>
<Title>WebVTT - Neue Sprache</Title>
<VoiceName>Sprachname</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1998,4 +1998,4 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<Title>WebVTT - καθορισμός νέας φωνής</Title>
<VoiceName>Όνομα φωνής</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1931,4 +1931,4 @@ puede editar el mismo archivo de subtítulo (colaboración)</Information>
<Title>WebVTT - establecer nueva voz</Title>
<VoiceName>Nombre de la voz</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1257,4 +1257,4 @@ puede editar el mismo archivo de subtítulo (colaboración)</Information>
<ShowWaveformOnly>Mostrar solo forma de onda</ShowWaveformOnly>
<ShowSpectrogramOnly>Mostrar solo espectrograma</ShowSpectrogramOnly>
</Waveform>
</Language>
</Language>

View File

@ -2023,4 +2023,4 @@ puedan editar el mismo archivo de subtítulo (colaboración)</Information>
<Title>WebVTT - fijar nueva voz</Title>
<VoiceName>Nombre de la voz</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -109,12 +109,12 @@ Post@: mailto:nikse.dk@gmail.com</AboutText1>
<GeneratingSpectrogram>Argilitza sortzen...</GeneratingSpectrogram>
<ExtractingSeconds>Audioa ateratzen: {0:0.0} segundu</ExtractingSeconds>
<ExtractingMinutes>Audioa ateratzen: {0}.{1:00} minutu</ExtractingMinutes>
<WaveFileNotFound>Ezin da ateratako uhin agiria aurkitu! Ezaugarri honek VLC multimedia irakurgailua 1.1.x edo berriagoa behar du ({0}-bit).
<WaveFileNotFound>Ezin da ateratako uhin agiria aurkitu! Ezaugarri honek VLC multimedia irakurgailua 1.1.x edo berriagoa behar du ({0}-bit).
Agindu lerroa: {1} {2}</WaveFileNotFound>
<WaveFileMalformed>{0}-k ezin ditu audio datuak atera uhin agirira!
Agindu lerroa: {1} {2}
<WaveFileMalformed>{0}-k ezin ditu audio datuak atera uhin agirira!
Agindu lerroa: {1} {2}
Oharra: Egiaztatu diskako toki askea.</WaveFileMalformed>
<LowDiskSpace>TOKI GUTXI DISKAN</LowDiskSpace>
<FreeDiskSpace>{0} aske</FreeDiskSpace>
@ -2108,4 +2108,4 @@ Gorde aldaketak?</KeepChangesMessage>
<Title>WebVTT - ezarri ahots berria</Title>
<VoiceName>Ahotsaren izena</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1279,4 +1279,4 @@ http://soft98.ir
<ShowWaveformOnly>فقط نمایش شکل موج</ShowWaveformOnly>
<ShowSpectrogramOnly>فقط نمایش طیف نگار</ShowSpectrogramOnly>
</Waveform>
</Language>
</Language>

View File

@ -2060,4 +2060,4 @@ Haluatko aloittaa asiakirjan alusta ja hakea kerran vielä?</FindContinue>
<Title>NettiVTT - aseta uusi ääni</Title>
<VoiceName>Äänen nimi</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2126,4 +2126,4 @@ peuvent modifier le même fichier de sous-titres (collaboration)</Information>
<Title>Web VTT Définir linterprète</Title>
<VoiceName>Interprète du dialogue</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2094,4 +2094,4 @@ određeni podnaslov s drugim ljudima.</Information>
<Title>WebVTT - postavi novi glas</Title>
<VoiceName>Naziv glasa</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2106,4 +2106,4 @@ Megtartja a változásokat?</KeepChangesMessage>
<Title>WebVTT - új hang beállítása</Title>
<VoiceName>Hang neve</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2088,4 +2088,4 @@ Mantenere le modifiche?</KeepChangesMessage>
<Title>WebVTT - imposta nuova voce</Title>
<VoiceName>Nome per la voce</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1683,4 +1683,4 @@ C# ソース コードは https://github.com/SubtitleEdit/subtitleedit にあり
<SplitLongLinesAt2>ミリ秒</SplitLongLinesAt2>
<Other>その他</Other>
</WaveformGenerateTimeCodes>
</Language>
</Language>

View File

@ -2118,4 +2118,4 @@ C# 코드는 https://github.com/SubtitleEdit/subtitleedit 에 있습니다.
<Title>WebVTT - 새로운 음성 설정</Title>
<VoiceName>음성 이름</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2120,4 +2120,4 @@ Wijzigingen behouden?</KeepChangesMessage>
<Title>WebVTT - installeer nieuwe stem</Title>
<VoiceName>Naam van de stem</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2121,4 +2121,4 @@ Utrzymać te zmiany?</KeepChangesMessage>
<Title>Ustaw nowy głos - WebVTT</Title>
<VoiceName>Nazwa głosu</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2099,4 +2099,4 @@ Manter as alterações?</KeepChangesMessage>
<Title>WebVTT - definir nova voz</Title>
<VoiceName>Nome da voz</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2123,4 +2123,4 @@ Manter as alterações?</KeepChangesMessage>
<Title>WebVTT - definir nova voz</Title>
<VoiceName>Nome da voz</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2108,4 +2108,4 @@ Păstrezi schimbările?</KeepChangesMessage>
<Title>WebVTT - setare voce nouă</Title>
<VoiceName>Denumirea vocii</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2136,4 +2136,4 @@ https://github.com/SubtitleEdit/subtitleedit
<Title>WebVTT - установить новый голос</Title>
<VoiceName>Имя голоса</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1961,4 +1961,4 @@ Ohranim spremembe?</KeepChangesMessage>
<Title>WebVTT - nastavi nov glagolski način</Title>
<VoiceName>Ime glagolskega načina</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1239,4 +1239,4 @@
<ShowWaveformOnly>Прикажи само таласни облик</ShowWaveformOnly>
<ShowSpectrogramOnly>Прикажи само спектрограм</ShowSpectrogramOnly>
</Waveform>
</Language>
</Language>

View File

@ -1684,4 +1684,4 @@ određeni prevod s drugim ljudima.</Information>
<SplitLongLinesAt2>Milisekundi</SplitLongLinesAt2>
<Other>Ostalo</Other>
</WaveformGenerateTimeCodes>
</Language>
</Language>

View File

@ -1992,4 +1992,4 @@ kan redigera i samma textningsfil (samarbete)</Information>
<Title>WebVTT - set ny röst</Title>
<VoiceName>Namn av röst</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2006,4 +2006,4 @@
<Title>WebVTT - กำหนดเสียงใหม่</Title>
<VoiceName>ตั้งชื่อของเสียง</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2020,4 +2020,4 @@ Değişiklikler saklansın mı?</KeepChangesMessage>
<Title>WebVTT - yeni ses ayarla</Title>
<VoiceName>Yeni sesin adı</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -2108,4 +2108,4 @@ Email: mailto:nikse.dk@gmail.com</AboutText1>
<Title>WebVTT - встановити новий голос</Title>
<VoiceName>Назва голосу</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1696,4 +1696,4 @@ có thể chỉnh sửa trong cùng một tập tin phụ đề (hợp tác vớ
<SplitLongLinesAt2>ms</SplitLongLinesAt2>
<Other>Khác</Other>
</WaveformGenerateTimeCodes>
</Language>
</Language>

View File

@ -2082,4 +2082,4 @@ Command line: {1} {2}
<Title>WebVTT - 设定新人声</Title>
<VoiceName>人声名称</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -1997,4 +1997,4 @@ C# 原始碼可從 https://github.com/SubtitleEdit/subtitleedit 取得。
<Title>WebVTT - 設定新的語音</Title>
<VoiceName>語音名稱</VoiceName>
</WebVttNewVoice>
</Language>
</Language>

View File

@ -87,7 +87,7 @@ Let us have some! Let us have some!";
Assert.AreEqual(expected, actual);
}
[TestMethod]
[TestMethod]
public void SrtNoLineNumbers()
{
var target = new SubRip();

View File

@ -1,459 +1,459 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Nikse.SubtitleEdit.Core;
using Nikse.SubtitleEdit.Core.Forms.FixCommonErrors;
using System;
namespace Test.Logic
{
[TestClass]
public class UtilitiesTest
{
[TestMethod]
public void AutoBreakLine1()
{
const int maxLength = 43;
var s = Utilities.AutoBreakLine("You have a private health insurance and life insurance." + Environment.NewLine + "A digital clone included.", 5, 33, string.Empty);
var arr = s.Replace(Environment.NewLine, "\n").Split('\n');
Assert.AreEqual(2, arr.Length);
Assert.IsFalse(arr[0].Length > maxLength);
Assert.IsFalse(arr[1].Length > maxLength);
}
[TestMethod]
public void AutoBreakLine2()
{
var s = Utilities.AutoBreakLine("We're gonna lose him." + Environment.NewLine + "He's left him four signals in the last week.", 5, 33, string.Empty);
Assert.IsFalse(s == "We're gonna lose him." + Environment.NewLine + "He's left him four signals in the last week.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine3()
{
string s1 = "- We're gonna lose him." + Environment.NewLine + "- He's left him four signals in the last week.";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual(s1, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine4()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "- Seriously, though. Are you being bullied? - Nope.";
string s2 = Utilities.AutoBreakLine(s1);
string target = "- Seriously, though. Are you being bullied?" + Environment.NewLine + "- Nope.";
Assert.AreEqual(target, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine5()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "<i>30 years ago I'd found</i> The Book of the Dead.";
var s2 = Utilities.AutoBreakLine(s1);
var Expected = "<i>30 years ago I'd found</i>" + Environment.NewLine + "The Book of the Dead.";
Assert.AreEqual(Expected, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine5DoNoBreakAtPeriod()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "Oh, snap, we're still saying the same thing. This is amazing!";
string s2 = Utilities.AutoBreakLine(s1);
string target = "Oh, snap, we're still saying the" + Environment.NewLine + "same thing. This is amazing!";
Assert.AreEqual(target, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDoNotBreakAfterDashDash()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
string s1 = "- That's hilarious, I don't--" + Environment.NewLine + "- Are the cheeks turning nice and pink?";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual(s1, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDialog1()
{
const string s1 = "- Qu'est ce qui se passe ? - Je veux voir ce qu'ils veulent être.";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual("- Qu'est ce qui se passe ?" + Environment.NewLine + "- Je veux voir ce qu'ils veulent être.", s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDialog2()
{
const string s1 = "- Je veux voir ce qu'ils veulent être. - Qu'est ce qui se passe ?";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual("- Je veux voir ce qu'ils veulent être." + Environment.NewLine + "- Qu'est ce qui se passe ?", s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags2()
{
const string s1 = "Gledaj prema kameri i rici <i>zdravo!";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "Gledaj prema kameri i rici zdravo!");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags3()
{
string s1 = "<i>Line 1.</i>" + Environment.NewLine + "<i>Line 2.";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Line 1." + Environment.NewLine + "Line 2.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags4()
{
string s1 = "It <i>is</i> a telegram," + Environment.NewLine + "it <i>is</i> ordering an advance,";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags5()
{
string s1 = "- <i>It is a telegram?</i>" + Environment.NewLine + "<i>- It is.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- It is a telegram?" + Environment.NewLine + "- It is.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags6()
{
string s1 = "- <i>Text1!</i>" + Environment.NewLine + "- <i>Text2.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- Text1!" + Environment.NewLine + "- Text2.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags7()
{
string s1 = "<i>- You think they're they gone?<i>" + Environment.NewLine + "<i>- That can't be.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- You think they're they gone?" + Environment.NewLine + "- That can't be.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags8()
{
string s1 = "<i>- You think they're they gone?</i>" + Environment.NewLine + "<i>- That can't be.<i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- You think they're they gone?" + Environment.NewLine + "- That can't be.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags9()
{
const string s1 = "FALCONE:<i> I didn't think</i>\r\n<i>it was going to be you,</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "FALCONE: <i>I didn't think\r\nit was going to be you,</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags10()
{
const string s1 = "< I>Hallo!</I>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags11()
{
const string s1 = "< I >Hallo!< /I>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags12()
{
const string s1 = "< I >Hallo!<I/>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDoubleSpace1()
{
const string s1 = "This is a test";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a test");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDoubleSpace2()
{
const string s1 = "This is a test ";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a test");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesItalics1()
{
const string s1 = "<i> This is a test</i>";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "<i>This is a test</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesItalics2()
{
const string s1 = "<i>This is a test </i>";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "<i>This is a test</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphen1()
{
const string s1 = "This is a low- budget job";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a low-budget job");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphen2()
{
const string s1 = "This is a low- budget job";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a low-budget job");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange1()
{
const string s1 = "This is it - and he likes it!";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange2()
{
const string s1 = "What are your long- and altitude stats?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange3()
{
const string s1 = "Did you buy that first- or second-handed?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChangeDutch1()
{
const string s1 = "Wat zijn je voor- en familienaam?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "nl");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChangeDutch2()
{
const string s1 = "Was het in het voor- of najaar?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "nl");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDialogDotDotDotLine1()
{
string s = Utilities.RemoveUnneededSpaces("- ... Careful", "en");
Assert.AreEqual(s, "- ...Careful");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDialogDotDotDotLine2()
{
string s = Utilities.RemoveUnneededSpaces("- Hi!" + Environment.NewLine + "- ... Careful", "en");
Assert.AreEqual(s, "- Hi!" + Environment.NewLine + "- ...Careful");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag1()
{
string s = Utilities.RemoveUnneededSpaces("<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag2()
{
string s = Utilities.RemoveUnneededSpaces("Foobar\r\n<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "Foobar\r\n<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag3()
{
string s = Utilities.RemoveUnneededSpaces("<FONT COLOR=\"#808080\">- Foobar! </FONT>\r\n<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "<font color=\"#808080\">- Foobar!</font>\r\n<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextStringOneLetterString()
{
int count = Utilities.CountTagInText("HHH", "H");
Assert.AreEqual(count, 3);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextStringNotThere()
{
int count = Utilities.CountTagInText("HHH", "B");
Assert.AreEqual(count, 0);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextCharNormal()
{
int count = Utilities.CountTagInText("HHH", 'H');
Assert.AreEqual(count, 3);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextCharNotThere()
{
int count = Utilities.CountTagInText("HHH", 'B');
Assert.AreEqual(count, 0);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTest()
{
string test1 = "<font color=\"#008080\">- Foobar." + Environment.NewLine + "Foobar.</font>";
string expected1 = "<font color=\"#008080\">- Foobar." + Environment.NewLine + "- Foobar.</font>";
string test2 = "<i>Foobar.</i>" + Environment.NewLine + "- Foobar.";
var expected2 = "<i>- Foobar.</i>" + Environment.NewLine + "- Foobar.";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
sub.Paragraphs.Add(new Paragraph(test2, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
string output2 = Helper.FixHyphensAdd(sub, 1, "en");
Assert.AreEqual(output1, expected1);
Assert.AreEqual(output2, expected2);
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Nikse.SubtitleEdit.Core;
using Nikse.SubtitleEdit.Core.Forms.FixCommonErrors;
using System;
namespace Test.Logic
{
[TestClass]
public class UtilitiesTest
{
[TestMethod]
public void AutoBreakLine1()
{
const int maxLength = 43;
var s = Utilities.AutoBreakLine("You have a private health insurance and life insurance." + Environment.NewLine + "A digital clone included.", 5, 33, string.Empty);
var arr = s.Replace(Environment.NewLine, "\n").Split('\n');
Assert.AreEqual(2, arr.Length);
Assert.IsFalse(arr[0].Length > maxLength);
Assert.IsFalse(arr[1].Length > maxLength);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTestAssTag()
{
string test1 = "{\\an5}- At least I was going back to Hawaii." + Environment.NewLine + "Woody.";
string expected1 = "{\\an5}- At least I was going back to Hawaii." + Environment.NewLine + "- Woody.";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
Assert.AreEqual(output1, expected1);
[TestMethod]
public void AutoBreakLine2()
{
var s = Utilities.AutoBreakLine("We're gonna lose him." + Environment.NewLine + "He's left him four signals in the last week.", 5, 33, string.Empty);
Assert.IsFalse(s == "We're gonna lose him." + Environment.NewLine + "He's left him four signals in the last week.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTestItalic()
{
string test1 = "<i>- At least I was going back to Hawaii.</i>" + Environment.NewLine + "<i>Woody.</i>";
string expected1 = "<i>- At least I was going back to Hawaii.</i>" + Environment.NewLine + "<i>- Woody.</i>";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
Assert.AreEqual(output1, expected1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks1()
{
string result = Utilities.RemoveLineBreaks("Hey" + Environment.NewLine + "you!");
Assert.AreEqual(result, "Hey you!");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks2()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar " + Environment.NewLine + "</i> foobar.");
Assert.AreEqual(result, "<i>Foobar</i> foobar.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks3()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar " + Environment.NewLine + "</i>foobar.");
Assert.AreEqual(result, "<i>Foobar</i> foobar.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks4()
{
string result = Utilities.RemoveLineBreaks("<i>Hey</i>" + Environment.NewLine + "<i>you!</i>");
Assert.AreEqual(result, "<i>Hey you!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks5()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar" + Environment.NewLine + "</i>");
Assert.AreEqual(result, "<i>Foobar</i>");
}
}
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine3()
{
string s1 = "- We're gonna lose him." + Environment.NewLine + "- He's left him four signals in the last week.";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual(s1, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine4()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "- Seriously, though. Are you being bullied? - Nope.";
string s2 = Utilities.AutoBreakLine(s1);
string target = "- Seriously, though. Are you being bullied?" + Environment.NewLine + "- Nope.";
Assert.AreEqual(target, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine5()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "<i>30 years ago I'd found</i> The Book of the Dead.";
var s2 = Utilities.AutoBreakLine(s1);
var Expected = "<i>30 years ago I'd found</i>" + Environment.NewLine + "The Book of the Dead.";
Assert.AreEqual(Expected, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLine5DoNoBreakAtPeriod()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
const string s1 = "Oh, snap, we're still saying the same thing. This is amazing!";
string s2 = Utilities.AutoBreakLine(s1);
string target = "Oh, snap, we're still saying the" + Environment.NewLine + "same thing. This is amazing!";
Assert.AreEqual(target, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDoNotBreakAfterDashDash()
{
Configuration.Settings.General.SubtitleLineMaximumLength = 43;
string s1 = "- That's hilarious, I don't--" + Environment.NewLine + "- Are the cheeks turning nice and pink?";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual(s1, s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDialog1()
{
const string s1 = "- Qu'est ce qui se passe ? - Je veux voir ce qu'ils veulent être.";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual("- Qu'est ce qui se passe ?" + Environment.NewLine + "- Je veux voir ce qu'ils veulent être.", s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void AutoBreakLineDialog2()
{
const string s1 = "- Je veux voir ce qu'ils veulent être. - Qu'est ce qui se passe ?";
string s2 = Utilities.AutoBreakLine(s1);
Assert.AreEqual("- Je veux voir ce qu'ils veulent être." + Environment.NewLine + "- Qu'est ce qui se passe ?", s2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags2()
{
const string s1 = "Gledaj prema kameri i rici <i>zdravo!";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "Gledaj prema kameri i rici zdravo!");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags3()
{
string s1 = "<i>Line 1.</i>" + Environment.NewLine + "<i>Line 2.";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Line 1." + Environment.NewLine + "Line 2.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags4()
{
string s1 = "It <i>is</i> a telegram," + Environment.NewLine + "it <i>is</i> ordering an advance,";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags5()
{
string s1 = "- <i>It is a telegram?</i>" + Environment.NewLine + "<i>- It is.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- It is a telegram?" + Environment.NewLine + "- It is.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags6()
{
string s1 = "- <i>Text1!</i>" + Environment.NewLine + "- <i>Text2.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- Text1!" + Environment.NewLine + "- Text2.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags7()
{
string s1 = "<i>- You think they're they gone?<i>" + Environment.NewLine + "<i>- That can't be.</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- You think they're they gone?" + Environment.NewLine + "- That can't be.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags8()
{
string s1 = "<i>- You think they're they gone?</i>" + Environment.NewLine + "<i>- That can't be.<i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>- You think they're they gone?" + Environment.NewLine + "- That can't be.</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags9()
{
const string s1 = "FALCONE:<i> I didn't think</i>\r\n<i>it was going to be you,</i>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "FALCONE: <i>I didn't think\r\nit was going to be you,</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags10()
{
const string s1 = "< I>Hallo!</I>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags11()
{
const string s1 = "< I >Hallo!< /I>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixInvalidItalicTags12()
{
const string s1 = "< I >Hallo!<I/>";
string s2 = HtmlUtil.FixInvalidItalicTags(s1);
Assert.AreEqual(s2, "<i>Hallo!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDoubleSpace1()
{
const string s1 = "This is a test";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a test");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDoubleSpace2()
{
const string s1 = "This is a test ";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a test");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesItalics1()
{
const string s1 = "<i> This is a test</i>";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "<i>This is a test</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesItalics2()
{
const string s1 = "<i>This is a test </i>";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "<i>This is a test</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphen1()
{
const string s1 = "This is a low- budget job";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a low-budget job");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphen2()
{
const string s1 = "This is a low- budget job";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, "This is a low-budget job");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange1()
{
const string s1 = "This is it - and he likes it!";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange2()
{
const string s1 = "What are your long- and altitude stats?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChange3()
{
const string s1 = "Did you buy that first- or second-handed?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "en");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChangeDutch1()
{
const string s1 = "Wat zijn je voor- en familienaam?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "nl");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesHyphenDoNotChangeDutch2()
{
const string s1 = "Was het in het voor- of najaar?";
string s2 = Utilities.RemoveUnneededSpaces(s1, "nl");
Assert.AreEqual(s2, s1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDialogDotDotDotLine1()
{
string s = Utilities.RemoveUnneededSpaces("- ... Careful", "en");
Assert.AreEqual(s, "- ...Careful");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesDialogDotDotDotLine2()
{
string s = Utilities.RemoveUnneededSpaces("- Hi!" + Environment.NewLine + "- ... Careful", "en");
Assert.AreEqual(s, "- Hi!" + Environment.NewLine + "- ...Careful");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag1()
{
string s = Utilities.RemoveUnneededSpaces("<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag2()
{
string s = Utilities.RemoveUnneededSpaces("Foobar\r\n<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "Foobar\r\n<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixUnneededSpacesFontTag3()
{
string s = Utilities.RemoveUnneededSpaces("<FONT COLOR=\"#808080\">- Foobar! </FONT>\r\n<font color=\"#808080\"> (PEOPLE SPEAKING INDISTINCTLY) </font>", "en");
Assert.AreEqual(s, "<font color=\"#808080\">- Foobar!</font>\r\n<font color=\"#808080\">(PEOPLE SPEAKING INDISTINCTLY)</font>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextStringOneLetterString()
{
int count = Utilities.CountTagInText("HHH", "H");
Assert.AreEqual(count, 3);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextStringNotThere()
{
int count = Utilities.CountTagInText("HHH", "B");
Assert.AreEqual(count, 0);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextCharNormal()
{
int count = Utilities.CountTagInText("HHH", 'H');
Assert.AreEqual(count, 3);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void CountTagInTextCharNotThere()
{
int count = Utilities.CountTagInText("HHH", 'B');
Assert.AreEqual(count, 0);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTest()
{
string test1 = "<font color=\"#008080\">- Foobar." + Environment.NewLine + "Foobar.</font>";
string expected1 = "<font color=\"#008080\">- Foobar." + Environment.NewLine + "- Foobar.</font>";
string test2 = "<i>Foobar.</i>" + Environment.NewLine + "- Foobar.";
var expected2 = "<i>- Foobar.</i>" + Environment.NewLine + "- Foobar.";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
sub.Paragraphs.Add(new Paragraph(test2, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
string output2 = Helper.FixHyphensAdd(sub, 1, "en");
Assert.AreEqual(output1, expected1);
Assert.AreEqual(output2, expected2);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTestAssTag()
{
string test1 = "{\\an5}- At least I was going back to Hawaii." + Environment.NewLine + "Woody.";
string expected1 = "{\\an5}- At least I was going back to Hawaii." + Environment.NewLine + "- Woody.";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
Assert.AreEqual(output1, expected1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void FixHyphensAddTestItalic()
{
string test1 = "<i>- At least I was going back to Hawaii.</i>" + Environment.NewLine + "<i>Woody.</i>";
string expected1 = "<i>- At least I was going back to Hawaii.</i>" + Environment.NewLine + "<i>- Woody.</i>";
var sub = new Subtitle();
sub.Paragraphs.Add(new Paragraph(test1, 0000, 11111));
string output1 = Helper.FixHyphensAdd(sub, 0, "en");
Assert.AreEqual(output1, expected1);
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks1()
{
string result = Utilities.RemoveLineBreaks("Hey" + Environment.NewLine + "you!");
Assert.AreEqual(result, "Hey you!");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks2()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar " + Environment.NewLine + "</i> foobar.");
Assert.AreEqual(result, "<i>Foobar</i> foobar.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks3()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar " + Environment.NewLine + "</i>foobar.");
Assert.AreEqual(result, "<i>Foobar</i> foobar.");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks4()
{
string result = Utilities.RemoveLineBreaks("<i>Hey</i>" + Environment.NewLine + "<i>you!</i>");
Assert.AreEqual(result, "<i>Hey you!</i>");
}
[TestMethod]
[DeploymentItem("SubtitleEdit.exe")]
public void RemoveLineBreaks5()
{
string result = Utilities.RemoveLineBreaks("<i>Foobar" + Environment.NewLine + "</i>");
Assert.AreEqual(result, "<i>Foobar</i>");
}
}
}

View File

@ -1,121 +1,121 @@
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
namespace UpdateLanguageFiles
{
internal class Program
{
private static readonly Regex TemplateFileVersionRegex; // e.g.: [assembly: AssemblyVersion("3.4.8.[REVNO]")]
static Program()
{
var options = RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.CultureInvariant | RegexOptions.Multiline;
TemplateFileVersionRegex = new Regex(@"^[ \t]*\[assembly:[ \t]*AssemblyVersion\(""(?<version>[0-9]+\.[0-9]+\.[0-9]+)\.\[REVNO\]""\)\]", options);
}
private const string WorkInProgress = "Updating language files...";
private static void WriteWarning(string message)
{
Console.WriteLine();
Console.WriteLine("WARNING: " + message);
Console.Write(WorkInProgress);
}
private static int Main(string[] args)
{
var myName = Environment.GetCommandLineArgs()[0];
myName = Path.GetFileNameWithoutExtension(string.IsNullOrWhiteSpace(myName) ? System.Reflection.Assembly.GetEntryAssembly().Location : myName);
if (args.Length != 2)
{
Console.Write("Usage: " + myName + @" <LanguageMaster> <LanguageDeserializer>
<LanguageMaster> Path to the LanguageMaster xml file (LanguageMaster.xml)
<LanguageDeserializer> Path to the LanguageDeserializer source code file (LanguageDeserializer.cs)
");
return 1;
}
Console.Write(WorkInProgress);
try
{
int noOfChanges = 0;
var language = new Nikse.SubtitleEdit.Core.Language { General = { Version = FindVersionNumber() } };
var languageAsXml = language.GetCurrentLanguageAsXml();
var oldLanguageAsXml = string.Empty;
if (File.Exists(args[0]))
oldLanguageAsXml = File.ReadAllText(args[0]);
if (oldLanguageAsXml != languageAsXml)
{
language.Save(args[0]);
noOfChanges++;
Console.Write(" {0} generated...", Path.GetFileName(args[0]));
}
var languageDeserializerContent = Nikse.SubtitleEdit.Logic.LanguageDeserializerGenerator.GenerateCSharpXmlDeserializerForLanguage();
var oldLanguageDeserializerContent = string.Empty;
if (File.Exists(args[1]))
oldLanguageDeserializerContent = File.ReadAllText(args[1]);
if (oldLanguageDeserializerContent != languageDeserializerContent)
{
File.WriteAllText(args[1], languageDeserializerContent, Encoding.UTF8);
noOfChanges++;
Console.Write(" {0} generated...", Path.GetFileName(args[1]));
}
if (noOfChanges == 0)
{
Console.WriteLine(" no changes");
}
else
{
Console.WriteLine();
}
return 0;
}
catch (Exception exception)
{
Console.WriteLine();
Console.WriteLine("ERROR: " + myName + ": " + exception.Message + Environment.NewLine + exception.StackTrace);
return 2;
}
}
private static string FindVersionNumber()
{
var templateFileName = Path.Combine("src", "Properties", "AssemblyInfo.cs.template");
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (File.Exists(templateFileName))
{
var templateText = File.ReadAllText(templateFileName);
var versionMatch = TemplateFileVersionRegex.Match(templateText);
if (versionMatch.Success)
{
return versionMatch.Groups["version"].Value;
}
WriteWarning("No valid AssemblyVersion in template file '" + Path.GetFullPath(templateFileName) + "'.");
}
else
{
WriteWarning("Template file '" + Path.GetFileName(templateFileName) + "' not found.");
}
return "unknown";
}
}
}
{
internal class Program
{
private static readonly Regex TemplateFileVersionRegex; // e.g.: [assembly: AssemblyVersion("3.4.8.[REVNO]")]
static Program()
{
var options = RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.CultureInvariant | RegexOptions.Multiline;
TemplateFileVersionRegex = new Regex(@"^[ \t]*\[assembly:[ \t]*AssemblyVersion\(""(?<version>[0-9]+\.[0-9]+\.[0-9]+)\.\[REVNO\]""\)\]", options);
}
private const string WorkInProgress = "Updating language files...";
private static void WriteWarning(string message)
{
Console.WriteLine();
Console.WriteLine("WARNING: " + message);
Console.Write(WorkInProgress);
}
private static int Main(string[] args)
{
var myName = Environment.GetCommandLineArgs()[0];
myName = Path.GetFileNameWithoutExtension(string.IsNullOrWhiteSpace(myName) ? System.Reflection.Assembly.GetEntryAssembly().Location : myName);
if (args.Length != 2)
{
Console.Write("Usage: " + myName + @" <LanguageMaster> <LanguageDeserializer>
<LanguageMaster> Path to the LanguageMaster xml file (LanguageMaster.xml)
<LanguageDeserializer> Path to the LanguageDeserializer source code file (LanguageDeserializer.cs)
");
return 1;
}
Console.Write(WorkInProgress);
try
{
int noOfChanges = 0;
var language = new Nikse.SubtitleEdit.Core.Language { General = { Version = FindVersionNumber() } };
var languageAsXml = language.GetCurrentLanguageAsXml();
var oldLanguageAsXml = string.Empty;
if (File.Exists(args[0]))
oldLanguageAsXml = File.ReadAllText(args[0]);
if (oldLanguageAsXml != languageAsXml)
{
language.Save(args[0]);
noOfChanges++;
Console.Write(" {0} generated...", Path.GetFileName(args[0]));
}
var languageDeserializerContent = Nikse.SubtitleEdit.Logic.LanguageDeserializerGenerator.GenerateCSharpXmlDeserializerForLanguage();
var oldLanguageDeserializerContent = string.Empty;
if (File.Exists(args[1]))
oldLanguageDeserializerContent = File.ReadAllText(args[1]);
if (oldLanguageDeserializerContent != languageDeserializerContent)
{
File.WriteAllText(args[1], languageDeserializerContent, Encoding.UTF8);
noOfChanges++;
Console.Write(" {0} generated...", Path.GetFileName(args[1]));
}
if (noOfChanges == 0)
{
Console.WriteLine(" no changes");
}
else
{
Console.WriteLine();
}
return 0;
}
catch (Exception exception)
{
Console.WriteLine();
Console.WriteLine("ERROR: " + myName + ": " + exception.Message + Environment.NewLine + exception.StackTrace);
return 2;
}
}
private static string FindVersionNumber()
{
var templateFileName = Path.Combine("src", "Properties", "AssemblyInfo.cs.template");
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (!File.Exists(templateFileName))
templateFileName = Path.Combine("..", templateFileName);
if (File.Exists(templateFileName))
{
var templateText = File.ReadAllText(templateFileName);
var versionMatch = TemplateFileVersionRegex.Match(templateText);
if (versionMatch.Success)
{
return versionMatch.Groups["version"].Value;
}
WriteWarning("No valid AssemblyVersion in template file '" + Path.GetFullPath(templateFileName) + "'.");
}
else
{
WriteWarning("Template file '" + Path.GetFileName(templateFileName) + "' not found.");
}
return "unknown";
}
}
}