Merge branch 'master' into patch-4

This commit is contained in:
May Kittens Devour Your Soul 2018-10-10 19:15:32 +02:00 committed by GitHub
commit 9b4e18e3ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 1282 additions and 535 deletions

View File

@ -1,6 +1,32 @@
Subtitle Edit Changelog
3.5.7 (9th September 2018)
3.5.8 (xth December 2018) BETA
* NEW:
* Add new subtitle formats
* Add some image pre-processing for OCR
* IMPROVED:
* Update Bulgarian translation - thx KalinM
* Update Finnish translation - thx Teijo S
* Update Korean translation - thx domddol
* Update Catalan translation - thx Juansa
* Update Hungarian translation - thx Zityi
* Make custom "Choose font" dialog - thx OmrSi
* Update Bing translator from V2 to V3 API
* Faster Tesseract OCR if CPU has many cores
* FIXED:
* Go back to Tesseract 3.02 (T4 available as in-program download)
* Fix Bing translator sign-up url - thx sopor
* Fix common OCR errors change " L* to " I." - thx Araynilmar
* Fix for loading video file after openening .mks file
* Fix crash in "Point sync" - thx Kari
* Fix crash in export of compare result - thx billysamk
* Fix missing titles from PGS inside MKV - thx ManChicken1911
3.5.7 (9th August 2018)
* NEW:
* Add new subtitle formats
* Font can be different for subtitle list view / text box

View File

@ -918,6 +918,7 @@ Note: Do check free disk space.</WaveFileMalformed>
<AdvancedSubStationAlphaProperties>Advanced Sub Station Alpha properties...</AdvancedSubStationAlphaProperties>
<SubStationAlphaProperties>Sub Station Alpha properties...</SubStationAlphaProperties>
<EbuProperties>EBU STL properties...</EbuProperties>
<DvdStuioProProperties>DVD Studio Pro properties...</DvdStuioProProperties>
<PacProperties>PAC properties...</PacProperties>
<OpenOriginal>Open original subtitle (translator mode)...</OpenOriginal>
<SaveOriginal>Save original subtitle</SaveOriginal>

View File

@ -60,14 +60,14 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
public static BluRaySupPalette DecodePalette(IList<PaletteInfo> paletteInfos)
{
BluRaySupPalette palette = new BluRaySupPalette(256);
var palette = new BluRaySupPalette(256);
// by definition, index 0xff is always completely transparent
// also all entries must be fully transparent after initialization
bool fadeOut = false;
for (int j = 0; j < paletteInfos.Count; j++)
{
PaletteInfo p = paletteInfos[j];
var p = paletteInfos[j];
int index = 0;
for (int i = 0; i < p.PaletteSize; i++)
@ -121,7 +121,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
var bm = new FastBitmap(new Bitmap(w, h));
bm.LockImage();
BluRaySupPalette pal = DecodePalette(palettes);
var pal = DecodePalette(palettes);
int ofs = 0;
int xpos = 0;
@ -151,7 +151,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
{
// 00 4x xx -> xxx zeroes
size = ((b - 0x40) << 8) + (buf[index++] & 0xff);
Color c = Color.FromArgb(pal.GetArgb(0));
var c = Color.FromArgb(pal.GetArgb(0));
for (int i = 0; i < size; i++)
PutPixel(bm, ofs++, c);
xpos += size;
@ -164,7 +164,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
// 00 8x yy -> x times value y
size = (b - 0x80);
b = buf[index++] & 0xff;
Color c = Color.FromArgb(pal.GetArgb(b));
var c = Color.FromArgb(pal.GetArgb(b));
for (int i = 0; i < size; i++)
PutPixel(bm, ofs++, c);
xpos += size;
@ -177,7 +177,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
// 00 cx yy zz -> xyy times value z
size = ((b - 0xC0) << 8) + (buf[index++] & 0xff);
b = buf[index++] & 0xff;
Color c = Color.FromArgb(pal.GetArgb(b));
var c = Color.FromArgb(pal.GetArgb(b));
for (int i = 0; i < size; i++)
PutPixel(bm, ofs++, c);
xpos += size;
@ -186,7 +186,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
else
{
// 00 xx -> xx times 0
Color c = Color.FromArgb(pal.GetArgb(0));
var c = Color.FromArgb(pal.GetArgb(0));
for (int i = 0; i < b; i++)
PutPixel(bm, ofs++, c);
xpos += b;
@ -246,7 +246,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
{
get
{
foreach (PcsObject obj in PcsObjects)
foreach (var obj in PcsObjects)
{
if (obj.IsForced)
return true;
@ -360,7 +360,9 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
}
else
{
#if DEBUG
log.AppendLine("Unable to read segment - PG missing!");
#endif
}
return segment;
}
@ -382,10 +384,13 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
/// <param name="offset">Buffer offset</param>
private static PcsObject ParsePcs(byte[] buffer, int offset)
{
var pcs = new PcsObject();
var pcs = new PcsObject
{
ObjectId = BigEndianInt16(buffer, 11 + offset),
WindowId = buffer[13 + offset]
};
// composition_object:
pcs.ObjectId = BigEndianInt16(buffer, 11 + offset); // 16bit object_id_ref
pcs.WindowId = buffer[13 + offset];
// 16bit object_id_ref
// skipped: 8bit window_id_ref
// object_cropped_flag: 0x80, forced_on_flag = 0x040, 6bit reserved
int forcedCropped = buffer[14 + offset];
@ -397,15 +402,19 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
private static PcsData ParsePicture(byte[] buffer, SupSegment segment)
{
var sb = new StringBuilder();
var pcs = new PcsData();
pcs.Size = new Size(BigEndianInt16(buffer, 0), BigEndianInt16(buffer, 2));
pcs.FramesPerSecondType = buffer[4]; // hi nibble: frame_rate, lo nibble: reserved
pcs.CompNum = BigEndianInt16(buffer, 5);
pcs.CompositionState = GetCompositionState(buffer[7]);
pcs.StartTime = segment.PtsTimestamp;
var pcs = new PcsData
{
Size = new Size(BigEndianInt16(buffer, 0), BigEndianInt16(buffer, 2)),
FramesPerSecondType = buffer[4],
CompNum = BigEndianInt16(buffer, 5),
CompositionState = GetCompositionState(buffer[7]),
StartTime = segment.PtsTimestamp,
PaletteUpdate = (buffer[8] == 0x80),
PaletteId = buffer[9]
};
// hi nibble: frame_rate, lo nibble: reserved
// 8bit palette_update_flag (0x80), 7bit reserved
pcs.PaletteUpdate = (buffer[8] == 0x80);
pcs.PaletteId = buffer[9]; // 8bit palette_id_ref
// 8bit palette_id_ref
int compositionObjectCount = buffer[10]; // 8bit number_of_composition_objects (0..2)
sb.AppendFormat("CompNum: {0}, Pts: {1}, State: {2}, PalUpdate: {3}, PalId {4}", pcs.CompNum, ToolBox.PtsToTimeString(pcs.StartTime), pcs.CompositionState, pcs.PaletteUpdate, pcs.PaletteId);
@ -420,7 +429,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
pcs.PcsObjects = new List<PcsObject>();
for (int compObjIndex = 0; compObjIndex < compositionObjectCount; compObjIndex++)
{
PcsObject pcsObj = ParsePcs(buffer, offset);
var pcsObj = ParsePcs(buffer, offset);
pcs.PcsObjects.Add(pcsObj);
sb.AppendLine();
sb.AppendFormat("ObjId: {0}, WinId: {1}, Forced: {2}, X: {3}, Y: {4}",
@ -520,24 +529,22 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
Message = "ObjId: " + objId + ", ver: " + objVer + ", seq: first" + (last ? "/" : "") + (last ? "" + "last" : "") + ", width: " + width + ", height: " + height,
};
}
else
{
info.ImagePacketSize = segment.Size - 4;
info.ImageBuffer = new byte[info.ImagePacketSize];
Buffer.BlockCopy(buffer, 4, info.ImageBuffer, 0, info.ImagePacketSize);
return new OdsData
{
IsFirst = false,
ObjectId = objId,
ObjectVersion = objVer,
Fragment = info,
Message = "Continued ObjId: " + objId + ", ver: " + objVer + ", seq: " + (last ? "" + "last" : ""),
};
}
info.ImagePacketSize = segment.Size - 4;
info.ImageBuffer = new byte[info.ImagePacketSize];
Buffer.BlockCopy(buffer, 4, info.ImageBuffer, 0, info.ImagePacketSize);
return new OdsData
{
IsFirst = false,
ObjectId = objId,
ObjectVersion = objVer,
Fragment = info,
Message = "Continued ObjId: " + objId + ", ver: " + objVer + ", seq: " + (last ? "" + "last" : ""),
};
}
public static List<PcsData> ParseBluRaySup(Stream ms, StringBuilder log, bool fromMatroskaFile)
public static List<PcsData> ParseBluRaySup(Stream ms, StringBuilder log, bool fromMatroskaFile, Dictionary<int, List<PaletteInfo>> lastPalettes = null)
{
long position = ms.Position;
int segmentCount = 0;
@ -547,8 +554,9 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
PcsData latestPcs = null;
var pcsList = new List<PcsData>();
var headerBuffer = fromMatroskaFile ? new byte[3] : new byte[HeaderSize];
var length = ms.Length;
while (position < ms.Length)
while (position < length)
{
ms.Seek(position, SeekOrigin.Begin);
@ -560,16 +568,23 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
// Read segment data
var buffer = new byte[segment.Size];
ms.Read(buffer, 0, buffer.Length);
#if DEBUG
log.Append(segmentCount + ": ");
#endif
switch (segment.Type)
{
case 0x14: // Palette
if (latestPcs != null)
{
#if DEBUG
log.AppendLine($"0x14 - Palette - PDS offset={position} size={segment.Size}");
PdsData pds = ParsePds(buffer, segment);
#endif
var pds = ParsePds(buffer, segment);
#if DEBUG
log.AppendLine(pds.Message);
#endif
if (pds.PaletteInfo != null)
{
if (!palettes.ContainsKey(pds.PaletteId))
@ -584,7 +599,9 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
}
else
{
#if DEBUG
log.AppendLine("Extra Palette");
#endif
}
}
palettes[pds.PaletteId].Add(pds.PaletteInfo);
@ -595,9 +612,13 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
case 0x15: // Image bitmap data
if (latestPcs != null)
{
#if DEBUG
log.AppendLine($"0x15 - Bitmap data - ODS offset={position} size={segment.Size}");
OdsData ods = ParseOds(buffer, segment, forceFirstOds);
#endif
var ods = ParseOds(buffer, segment, forceFirstOds);
#if DEBUG
log.AppendLine(ods.Message);
#endif
if (!latestPcs.PaletteUpdate)
{
List<OdsData> odsList;
@ -614,13 +635,17 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
}
else
{
#if DEBUG
log.AppendLine($"INVALID ObjectId {ods.ObjectId} in ODS, offset={position}");
#endif
}
}
}
else
{
#if DEBUG
log.AppendLine($"Bitmap Data Ignore due to PaletteUpdate offset={position}");
#endif
}
forceFirstOds = false;
}
@ -629,16 +654,20 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
case 0x16: // Picture time codes
if (latestPcs != null)
{
if (CompletePcs(latestPcs, bitmapObjects, palettes))
if (CompletePcs(latestPcs, bitmapObjects, palettes.Count > 0 ? palettes : lastPalettes))
{
pcsList.Add(latestPcs);
}
}
#if DEBUG
log.AppendLine($"0x16 - Picture codes, offset={position} size={segment.Size}");
#endif
forceFirstOds = true;
PcsData nextPcs = ParsePicture(buffer, segment);
var nextPcs = ParsePicture(buffer, segment);
#if DEBUG
log.AppendLine(nextPcs.Message);
#endif
latestPcs = nextPcs;
if (latestPcs.CompositionState == CompositionState.EpochStart)
{
@ -650,7 +679,9 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
case 0x17: // Window display
if (latestPcs != null)
{
#if DEBUG
log.AppendLine($"0x17 - Window display offset={position} size={segment.Size}");
#endif
int windowCount = buffer[0];
int offset = 0;
for (int nextWindow = 0; nextWindow < windowCount; nextWindow++)
@ -669,10 +700,12 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
case 0x80:
forceFirstOds = true;
#if DEBUG
log.AppendLine($"0x80 - END offset={position} size={segment.Size}");
#endif
if (latestPcs != null)
{
if (CompletePcs(latestPcs, bitmapObjects, palettes))
if (CompletePcs(latestPcs, bitmapObjects, palettes.Count > 0 ? palettes : lastPalettes))
{
pcsList.Add(latestPcs);
}
@ -681,7 +714,9 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
break;
default:
#if DEBUG
log.AppendLine($"0x?? - END offset={position} UNKOWN SEGMENT TYPE={segment.Type}");
#endif
break;
}
position += segment.Size;
@ -690,7 +725,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
if (latestPcs != null)
{
if (CompletePcs(latestPcs, bitmapObjects, palettes))
if (CompletePcs(latestPcs, bitmapObjects, palettes.Count > 0 ? palettes : lastPalettes))
pcsList.Add(latestPcs);
}
@ -698,18 +733,18 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
pcsList[pcsIndex - 1].EndTime = pcsList[pcsIndex].StartTime;
pcsList.RemoveAll(pcs => pcs.PcsObjects.Count == 0);
foreach (PcsData pcs in pcsList)
foreach (var pcs in pcsList)
{
foreach (List<OdsData> odsList in pcs.BitmapObjects)
foreach (var odsList in pcs.BitmapObjects)
{
if (odsList.Count > 1)
{
int bufSize = 0;
foreach (OdsData ods in odsList)
foreach (var ods in odsList)
bufSize += ods.Fragment.ImagePacketSize;
byte[] buf = new byte[bufSize];
int offset = 0;
foreach (OdsData ods in odsList)
foreach (var ods in odsList)
{
Buffer.BlockCopy(ods.Fragment.ImageBuffer, 0, buf, offset, ods.Fragment.ImagePacketSize);
offset += ods.Fragment.ImagePacketSize;
@ -738,6 +773,16 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
}
}
// save last palette
if (lastPalettes != null && palettes.Count > 0)
{
lastPalettes.Clear();
foreach (var palette in palettes)
{
lastPalettes.Add(palette.Key, palette.Value);
}
}
return pcsList;
}
@ -786,7 +831,7 @@ namespace Nikse.SubtitleEdit.Core.BluRaySup
{
if (buffer.Length < 4)
return 0;
return (uint)((buffer[index + 3]) + (buffer[index + 2] << 8) + (buffer[index + 1] << 0x10) + (buffer[index + 0] << 0x18));
return (uint)(buffer[index + 3] + (buffer[index + 2] << 8) + (buffer[index + 1] << 0x10) + (buffer[index + 0] << 0x18));
}
}

View File

@ -1404,6 +1404,7 @@ namespace Nikse.SubtitleEdit.Core
AdvancedSubStationAlphaProperties = "Advanced Sub Station Alpha properties...",
SubStationAlphaProperties = "Sub Station Alpha properties...",
EbuProperties = "EBU STL properties...",
DvdStuioProProperties = "DVD Studio Pro properties...",
PacProperties = "PAC properties...",
OpenOriginal = "Open original subtitle (translator mode)...",
SaveOriginal = "Save original subtitle",

View File

@ -3211,6 +3211,9 @@ namespace Nikse.SubtitleEdit.Core
case "Main/Menu/File/EbuProperties":
language.Main.Menu.File.EbuProperties = reader.Value;
break;
case "Main/Menu/File/DvdStuioProProperties":
language.Main.Menu.File.DvdStuioProProperties = reader.Value;
break;
case "Main/Menu/File/PacProperties":
language.Main.Menu.File.PacProperties = reader.Value;
break;

View File

@ -1270,6 +1270,7 @@
public string AdvancedSubStationAlphaProperties { get; set; }
public string SubStationAlphaProperties { get; set; }
public string EbuProperties { get; set; }
public string DvdStuioProProperties { get; set; }
public string PacProperties { get; set; }
public string OpenOriginal { get; set; }
public string SaveOriginal { get; set; }

View File

@ -6,15 +6,15 @@ namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
{
/// <summary>
/// Maximum duration: 7 seconds per subtitle event
/// Maximum 42 chars per line for the majority of languages.
/// </summary>
public void Check(Subtitle subtitle, NetflixQualityController controller)
{
foreach (Paragraph p in subtitle.Paragraphs)
foreach (var p in subtitle.Paragraphs)
{
foreach (var line in p.Text.SplitToLines())
{
if (line.Length > controller.SingleLineMaxLength)
if (HtmlUtil.RemoveHtmlTags(line, true).Length > controller.SingleLineMaxLength)
{
var fixedParagraph = new Paragraph(p, false);
fixedParagraph.Text = Utilities.AutoBreakLine(fixedParagraph.Text, controller.SingleLineMaxLength, controller.SingleLineMaxLength - 3, controller.Language);

View File

@ -22,10 +22,6 @@ namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
{
if (!string.IsNullOrEmpty(Language))
{
if (Language == "ar") // Arabic
{
return 20;
}
if (Language == "ko") // Korean
{
return 12;
@ -35,7 +31,7 @@ namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
return 9;
}
}
return 17;
return 20;
}
}
@ -47,7 +43,7 @@ namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
{
if (Language == "ja") // Japanese
{
return 13;
return 23;
}
if (Language == "ko") // Korean
{
@ -76,6 +72,10 @@ namespace Nikse.SubtitleEdit.Core.NetflixQualityCheck
{
return false;
}
if (Language == "ar") // Arabic
{
return false;
}
}
return true;
}

View File

@ -384,6 +384,7 @@ namespace Nikse.SubtitleEdit.Core
public int EbuStlMarginBottom { get; set; }
public int EbuStlNewLineRows { get; set; }
public string DvdStudioProHeader { get; set; }
public bool CheetahCaptionAlwayWriteEndTime { get; set; }
@ -426,6 +427,22 @@ namespace Nikse.SubtitleEdit.Core
EbuStlMarginBottom = 2;
EbuStlNewLineRows = 2;
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
";
SamiDisplayTwoClassesAsTwoSubtitles = true;
SamiHtmlEncodeMode = 0;
@ -899,6 +916,7 @@ namespace Nikse.SubtitleEdit.Core
LastModiLanguageId = 9;
LastOcrMethod = "Tesseract";
UseItalicsInTesseract = true;
TesseractEngineMode = 3; // Default, based on what is available (T4 docs)
UseMusicSymbolsInTesseract = true;
UseTesseractFallback = true;
RightToLeft = false;
@ -2377,6 +2395,11 @@ namespace Nikse.SubtitleEdit.Core
subNode = node.SelectSingleNode("EbuStlNewLineRows");
if (subNode != null)
settings.SubtitleSettings.EbuStlNewLineRows = Convert.ToInt32(subNode.InnerText);
subNode = node.SelectSingleNode("DvdStudioProHeader");
if (subNode != null)
settings.SubtitleSettings.DvdStudioProHeader = subNode.InnerText.TrimEnd() + Environment.NewLine;
subNode = node.SelectSingleNode("CheetahCaptionAlwayWriteEndTime");
if (subNode != null)
settings.SubtitleSettings.CheetahCaptionAlwayWriteEndTime = Convert.ToBoolean(subNode.InnerText);
@ -3747,6 +3770,7 @@ namespace Nikse.SubtitleEdit.Core
textWriter.WriteElementString("EbuStlMarginTop", settings.SubtitleSettings.EbuStlMarginTop.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("EbuStlMarginBottom", settings.SubtitleSettings.EbuStlMarginBottom.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("EbuStlNewLineRows", settings.SubtitleSettings.EbuStlNewLineRows.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("DvdStudioProHeader", settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine);
textWriter.WriteElementString("CheetahCaptionAlwayWriteEndTime", settings.SubtitleSettings.CheetahCaptionAlwayWriteEndTime.ToString(CultureInfo.InvariantCulture));
textWriter.WriteElementString("NuendoCharacterListFile", settings.SubtitleSettings.NuendoCharacterListFile);
textWriter.WriteEndElement();

View File

@ -17,21 +17,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
const string paragraphWriteFormat = "{0}\t,\t{1}\t,\t{2}\r\n";
const string timeFormat = "{0:00}:{1:00}:{2:00}:{3:00}";
const string header = @"$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
";
var header = Configuration.Settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine;
var lastVerticalAlign = "$VertAlign = Bottom";
var lastHorizontalcalAlign = "$HorzAlign = Center";

View File

@ -18,21 +18,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
const string paragraphWriteFormat = "{0} , {1} , {2}\r\n";
const string timeFormat = "{0:00}:{1:00}:{2:00}:{3:00}";
const string header = @"$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
";
var header = Configuration.Settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine;
var lastVerticalAlign = "$VertAlign = Bottom";
var lastHorizontalcalAlign = "$HorzAlign = Center";

View File

@ -17,21 +17,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
const string paragraphWriteFormat = "{0} , {1} , {2}\r\n";
const string timeFormat = "{0:00}:{1:00}:{2:00}:{3:00}";
const string header = @"$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
";
var header = Configuration.Settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine;
var lastVerticalAlign = "$VertAlign = Bottom";
var lastHorizontalcalAlign = "$HorzAlign = Center";

View File

@ -17,21 +17,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
const string paragraphWriteFormat = "{0},{1}, {2}\r\n";
const string timeFormat = "{0:00}:{1:00}:{2:00}:{3:00}";
const string header = @"$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
";
var header = Configuration.Settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine;
var lastVerticalAlign = "$VertAlign = Bottom";
var lastHorizontalcalAlign = "$HorzAlign = Center";

View File

@ -17,21 +17,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
const string paragraphWriteFormat = "{0},{1}, {2}\r\n";
const string timeFormat = "{0:00}:{1:00}:{2:00};{3:00}";
const string header = @"$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
";
var header = Configuration.Settings.SubtitleSettings.DvdStudioProHeader.TrimEnd() + Environment.NewLine;
var lastVerticalAlign = "$VertAlign = Bottom";
var lastHorizontalcalAlign = "$HorzAlign = Center";

View File

@ -80,6 +80,7 @@ namespace Nikse.SubtitleEdit.Core.Translate
{
var url = string.Format(TranslateUrl, sourceLanguage, targetLanguage);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Proxy = Utilities.GetProxy();
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add(SecurityHeaderName, _ocpApimSubscriptionKey);
@ -97,16 +98,7 @@ namespace Nikse.SubtitleEdit.Core.Translate
{
isFirst = false;
}
var t = text;
if (sourceLanguage == "en")
{
t = text.Replace(" don't ", " do not ");
t = text.Replace(" don't ", " do not ");
t = text.Replace(" don't ", " do not ");
}
jsonBuilder.Append("{ \"Text\":\"" + Json.EncodeJsonText(t) + "\"}");
jsonBuilder.Append("{ \"Text\":\"" + Json.EncodeJsonText(text) + "\"}");
}
jsonBuilder.Append("]");
string json = jsonBuilder.ToString();

191
src/Forms/ChooseFontName.Designer.cs generated Normal file
View File

@ -0,0 +1,191 @@
namespace Nikse.SubtitleEdit.Forms
{
sealed partial class ChooseFontName
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button();
this.buttonSearchClear = new System.Windows.Forms.Button();
this.labelShortcutsSearch = new System.Windows.Forms.Label();
this.textBoxSearch = new System.Windows.Forms.TextBox();
this.groupBoxPreview = new System.Windows.Forms.GroupBox();
this.labelPreview3 = new System.Windows.Forms.Label();
this.labelPreview2 = new System.Windows.Forms.Label();
this.labelPreview1 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.groupBoxPreview.SuspendLayout();
this.SuspendLayout();
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Location = new System.Drawing.Point(251, 411);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 21);
this.buttonCancel.TabIndex = 60;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.Location = new System.Drawing.Point(170, 411);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 21);
this.buttonOK.TabIndex = 50;
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// buttonSearchClear
//
this.buttonSearchClear.Enabled = false;
this.buttonSearchClear.Location = new System.Drawing.Point(217, 14);
this.buttonSearchClear.Name = "buttonSearchClear";
this.buttonSearchClear.Size = new System.Drawing.Size(111, 23);
this.buttonSearchClear.TabIndex = 10;
this.buttonSearchClear.Text = "Clear";
this.buttonSearchClear.UseVisualStyleBackColor = true;
this.buttonSearchClear.Click += new System.EventHandler(this.buttonSearchClear_Click);
//
// labelShortcutsSearch
//
this.labelShortcutsSearch.AutoSize = true;
this.labelShortcutsSearch.Location = new System.Drawing.Point(14, 19);
this.labelShortcutsSearch.Name = "labelShortcutsSearch";
this.labelShortcutsSearch.Size = new System.Drawing.Size(41, 13);
this.labelShortcutsSearch.TabIndex = 48;
this.labelShortcutsSearch.Text = "Search";
//
// textBoxSearch
//
this.textBoxSearch.Location = new System.Drawing.Point(60, 16);
this.textBoxSearch.Name = "textBoxSearch";
this.textBoxSearch.Size = new System.Drawing.Size(151, 20);
this.textBoxSearch.TabIndex = 0;
this.textBoxSearch.TextChanged += new System.EventHandler(this.textBoxSearch_TextChanged);
//
// groupBoxPreview
//
this.groupBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxPreview.Controls.Add(this.labelPreview3);
this.groupBoxPreview.Controls.Add(this.labelPreview2);
this.groupBoxPreview.Controls.Add(this.labelPreview1);
this.groupBoxPreview.Location = new System.Drawing.Point(12, 274);
this.groupBoxPreview.Name = "groupBoxPreview";
this.groupBoxPreview.Size = new System.Drawing.Size(314, 131);
this.groupBoxPreview.TabIndex = 49;
this.groupBoxPreview.TabStop = false;
this.groupBoxPreview.Text = "Preview";
//
// labelPreview3
//
this.labelPreview3.AutoSize = true;
this.labelPreview3.Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelPreview3.Location = new System.Drawing.Point(22, 85);
this.labelPreview3.Name = "labelPreview3";
this.labelPreview3.Size = new System.Drawing.Size(211, 25);
this.labelPreview3.TabIndex = 51;
this.labelPreview3.Text = "Example of current font";
//
// labelPreview2
//
this.labelPreview2.AutoSize = true;
this.labelPreview2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelPreview2.Location = new System.Drawing.Point(22, 50);
this.labelPreview2.Name = "labelPreview2";
this.labelPreview2.Size = new System.Drawing.Size(174, 20);
this.labelPreview2.TabIndex = 50;
this.labelPreview2.Text = "Example of current font";
//
// labelPreview1
//
this.labelPreview1.AutoSize = true;
this.labelPreview1.Location = new System.Drawing.Point(22, 25);
this.labelPreview1.Name = "labelPreview1";
this.labelPreview1.Size = new System.Drawing.Size(116, 13);
this.labelPreview1.TabIndex = 49;
this.labelPreview1.Text = "Example of current font";
//
// listBox1
//
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(17, 42);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(309, 225);
this.listBox1.TabIndex = 61;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
//
// ChooseFontName
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(338, 444);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.groupBoxPreview);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.buttonSearchClear);
this.Controls.Add(this.labelShortcutsSearch);
this.Controls.Add(this.textBoxSearch);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.KeyPreview = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ChooseFontName";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "ChooseFontName";
this.Load += new System.EventHandler(this.ChooseFontName_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ChooseFontName_KeyDown);
this.groupBoxPreview.ResumeLayout(false);
this.groupBoxPreview.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.Button buttonSearchClear;
private System.Windows.Forms.Label labelShortcutsSearch;
private System.Windows.Forms.TextBox textBoxSearch;
private System.Windows.Forms.GroupBox groupBoxPreview;
private System.Windows.Forms.Label labelPreview3;
private System.Windows.Forms.Label labelPreview2;
private System.Windows.Forms.Label labelPreview1;
private System.Windows.Forms.ListBox listBox1;
}
}

102
src/Forms/ChooseFontName.cs Normal file
View File

@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core;
using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms
{
public sealed partial class ChooseFontName : Form
{
public string FontName { get; set; }
private readonly List<string> _fontNames;
public ChooseFontName()
{
UiUtil.PreInitialize(this);
InitializeComponent();
UiUtil.FixFonts(this);
Text = Configuration.Settings.Language.Main.Menu.ContextMenu.FontName;
labelShortcutsSearch.Text = Configuration.Settings.Language.General.Search;
buttonSearchClear.Text = Configuration.Settings.Language.DvdSubRip.Clear;
textBoxSearch.Left = labelShortcutsSearch.Left + labelShortcutsSearch.Width + 5;
buttonSearchClear.Left = textBoxSearch.Left + textBoxSearch.Width + 5;
groupBoxPreview.Text = Configuration.Settings.Language.General.Preview;
buttonOK.Text = Configuration.Settings.Language.General.Ok;
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
UiUtil.FixLargeFonts(this, buttonOK);
buttonOK.Enabled = false;
_fontNames = new List<string>();
listBox1.Items.Clear();
foreach (var x in FontFamily.Families)
{
if (!string.IsNullOrEmpty(x.Name) && (x.IsStyleAvailable(FontStyle.Regular) || x.IsStyleAvailable(FontStyle.Bold)))
{
listBox1.Items.Add(x.Name);
_fontNames.Add(x.Name);
}
}
labelPreview1.Text = string.Empty;
labelPreview2.Text = string.Empty;
labelPreview3.Text = string.Empty;
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count == 0)
return;
buttonOK.Enabled = true;
FontName = listBox1.Items[listBox1.SelectedIndex].ToString();
labelPreview1.Text = FontName;
labelPreview2.Text = FontName;
labelPreview3.Text = FontName;
labelPreview1.Font = new Font(new FontFamily(FontName), labelPreview1.Font.Size);
labelPreview2.Font = new Font(new FontFamily(FontName), labelPreview2.Font.Size);
labelPreview3.Font = new Font(new FontFamily(FontName), labelPreview3.Font.Size);
}
private void buttonOK_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
if (_fontNames == null)
return;
listBox1.BeginUpdate();
listBox1.Items.Clear();
foreach (var fn in _fontNames)
{
if (textBoxSearch.Text.Length < 2 ||
fn.Contains(textBoxSearch.Text, StringComparison.OrdinalIgnoreCase))
{
listBox1.Items.Add(fn);
}
}
listBox1.EndUpdate();
buttonSearchClear.Enabled = textBoxSearch.Text.Length > 0;
listView1_SelectedIndexChanged(null, null);
}
private void ChooseFontName_Load(object sender, EventArgs e)
{
}
private void buttonSearchClear_Click(object sender, EventArgs e)
{
textBoxSearch.Text = string.Empty;
}
private void ChooseFontName_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
DialogResult = DialogResult.Cancel;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -114,8 +114,7 @@ namespace Nikse.SubtitleEdit.Forms
return;
}
_subtitle1 = new Subtitle();
Encoding encoding;
var format = _subtitle1.LoadSubtitle(openFileDialog1.FileName, out encoding, null);
var format = _subtitle1.LoadSubtitle(openFileDialog1.FileName, out _, null);
if (format == null)
{
var pac = new Pac();
@ -196,8 +195,7 @@ namespace Nikse.SubtitleEdit.Forms
return;
}
_subtitle2 = new Subtitle();
Encoding encoding;
var format = _subtitle2.LoadSubtitle(openFileDialog1.FileName, out encoding, null);
var format = _subtitle2.LoadSubtitle(openFileDialog1.FileName, out _, null);
if (format == null)
{
var pac = new Pac();
@ -957,11 +955,11 @@ namespace Nikse.SubtitleEdit.Forms
MessageBox.Show(Configuration.Settings.Language.CompareSubtitles.CannotCompareWithImageBasedSubtitles);
return;
}
Encoding encoding;
if (listView.Name == "subtitleListView1")
{
_subtitle1 = new Subtitle();
_subtitle1.LoadSubtitle(filePath, out encoding, null);
_subtitle1.LoadSubtitle(filePath, out _, null);
subtitleListView1.Fill(_subtitle1);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
@ -973,7 +971,7 @@ namespace Nikse.SubtitleEdit.Forms
else
{
_subtitle2 = new Subtitle();
_subtitle2.LoadSubtitle(filePath, out encoding, null);
_subtitle2.LoadSubtitle(filePath, out _, null);
subtitleListView2.Fill(_subtitle2);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
@ -1080,8 +1078,7 @@ namespace Nikse.SubtitleEdit.Forms
sb.AppendLine(" </table>");
sb.AppendLine(" </body>");
sb.AppendLine("</html>");
var statistic = string.Format(sb.ToString());
File.WriteAllText(fileName, statistic);
File.WriteAllText(fileName, sb.ToString());
}
}
}

View File

@ -0,0 +1,110 @@
namespace Nikse.SubtitleEdit.Forms
{
partial class DvdStudioProProperties
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBoxHeader = new System.Windows.Forms.TextBox();
this.labelHeader = new System.Windows.Forms.Label();
this.buttonOK = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBoxHeader
//
this.textBoxHeader.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxHeader.Location = new System.Drawing.Point(15, 38);
this.textBoxHeader.Multiline = true;
this.textBoxHeader.Name = "textBoxHeader";
this.textBoxHeader.Size = new System.Drawing.Size(374, 309);
this.textBoxHeader.TabIndex = 1;
//
// labelHeader
//
this.labelHeader.AutoSize = true;
this.labelHeader.Location = new System.Drawing.Point(12, 22);
this.labelHeader.Name = "labelHeader";
this.labelHeader.Size = new System.Drawing.Size(42, 13);
this.labelHeader.TabIndex = 9;
this.labelHeader.Text = "Header";
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.Location = new System.Drawing.Point(314, 353);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 21);
this.buttonOK.TabIndex = 0;
this.buttonOK.Text = "&OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Location = new System.Drawing.Point(233, 353);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 21);
this.buttonCancel.TabIndex = 2;
this.buttonCancel.Text = "C&ancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
// DvdStudioProProperties
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(401, 386);
this.Controls.Add(this.textBoxHeader);
this.Controls.Add(this.labelHeader);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.buttonCancel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.KeyPreview = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "DvdStudioProProperties";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "DVD Studio Pro properties";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.DvdStudioProProperties_KeyDown);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBoxHeader;
private System.Windows.Forms.Label labelHeader;
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.Button buttonCancel;
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Windows.Forms;
using Nikse.SubtitleEdit.Core;
namespace Nikse.SubtitleEdit.Forms
{
public partial class DvdStudioProProperties : Form
{
public DvdStudioProProperties()
{
InitializeComponent();
textBoxHeader.Text = Configuration.Settings.SubtitleSettings.DvdStudioProHeader;
}
private void buttonOK_Click(object sender, EventArgs e)
{
Configuration.Settings.SubtitleSettings.DvdStudioProHeader = textBoxHeader.Text.TrimEnd() + Environment.NewLine;
DialogResult = DialogResult.OK;
}
private void DvdStudioProProperties_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
DialogResult = DialogResult.Cancel;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -60,11 +60,11 @@
this.checkBoxRemoveEmptyLines = new System.Windows.Forms.CheckBox();
this.groupBoxImportResult = new System.Windows.Forms.GroupBox();
this.SubtitleListview1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
this.contextMenuStripPreview = new System.Windows.Forms.ContextMenuStrip(this.components);
this.startNumberingFromToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button();
this.contextMenuStripPreview = new System.Windows.Forms.ContextMenuStrip(this.components);
this.startNumberingFromToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBoxImportText.SuspendLayout();
this.contextMenuStripListView.SuspendLayout();
this.groupBoxImportOptions.SuspendLayout();
@ -246,11 +246,6 @@
0,
0,
0});
this.numericUpDownGapBetweenLines.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDownGapBetweenLines.Name = "numericUpDownGapBetweenLines";
this.numericUpDownGapBetweenLines.Size = new System.Drawing.Size(64, 21);
this.numericUpDownGapBetweenLines.TabIndex = 1;
@ -281,11 +276,6 @@
0,
0,
0});
this.numericUpDownDurationFixed.Minimum = new decimal(new int[] {
100,
0,
0,
0});
this.numericUpDownDurationFixed.Name = "numericUpDownDurationFixed";
this.numericUpDownDurationFixed.Size = new System.Drawing.Size(64, 21);
this.numericUpDownDurationFixed.TabIndex = 2;
@ -481,6 +471,20 @@
this.SubtitleListview1.UseSyntaxColoring = true;
this.SubtitleListview1.View = System.Windows.Forms.View.Details;
//
// contextMenuStripPreview
//
this.contextMenuStripPreview.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.startNumberingFromToolStripMenuItem});
this.contextMenuStripPreview.Name = "contextMenuStripPreview";
this.contextMenuStripPreview.Size = new System.Drawing.Size(199, 26);
//
// startNumberingFromToolStripMenuItem
//
this.startNumberingFromToolStripMenuItem.Name = "startNumberingFromToolStripMenuItem";
this.startNumberingFromToolStripMenuItem.Size = new System.Drawing.Size(198, 22);
this.startNumberingFromToolStripMenuItem.Text = "Start numbering from...";
this.startNumberingFromToolStripMenuItem.Click += new System.EventHandler(this.startNumberingFromToolStripMenuItem_Click);
//
// openFileDialog1
//
this.openFileDialog1.FileName = "openFileDialog1";
@ -509,20 +513,6 @@
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.ButtonOkClick);
//
// contextMenuStripPreview
//
this.contextMenuStripPreview.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.startNumberingFromToolStripMenuItem});
this.contextMenuStripPreview.Name = "contextMenuStripPreview";
this.contextMenuStripPreview.Size = new System.Drawing.Size(199, 26);
//
// startNumberingFromToolStripMenuItem
//
this.startNumberingFromToolStripMenuItem.Name = "startNumberingFromToolStripMenuItem";
this.startNumberingFromToolStripMenuItem.Size = new System.Drawing.Size(198, 22);
this.startNumberingFromToolStripMenuItem.Text = "Start numbering from...";
this.startNumberingFromToolStripMenuItem.Click += new System.EventHandler(this.startNumberingFromToolStripMenuItem_Click);
//
// ImportText
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

View File

@ -38,9 +38,9 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
Nikse.SubtitleEdit.Core.TimeCode timeCode1 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode2 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode3 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode4 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode5 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode6 = new Nikse.SubtitleEdit.Core.TimeCode();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.labelStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripSelected = new System.Windows.Forms.ToolStripStatusLabel();
@ -91,6 +91,7 @@
this.toolStripMenuItemFcpProperties = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemSubStationAlpha = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemEbuProperties = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItemDvdStudioProProperties = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator20 = new System.Windows.Forms.ToolStripSeparator();
this.openOriginalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveOriginalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -311,10 +312,8 @@
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
this.fontDialog1 = new System.Windows.Forms.FontDialog();
this.groupBoxVideo = new System.Windows.Forms.GroupBox();
this.labelNextWord = new System.Windows.Forms.Label();
this.audioVisualizer = new Nikse.SubtitleEdit.Controls.AudioVisualizer();
this.checkBoxSyncListViewWithVideoWhilePlaying = new System.Windows.Forms.CheckBox();
this.labelVideoInfo = new System.Windows.Forms.Label();
this.trackBarWaveformPosition = new System.Windows.Forms.TrackBar();
@ -350,7 +349,6 @@
this.buttonPlayCurrent = new System.Windows.Forms.Button();
this.buttonPlayNext = new System.Windows.Forms.Button();
this.tabPageCreate = new System.Windows.Forms.TabPage();
this.timeUpDownVideoPosition = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.buttonGotoSub = new System.Windows.Forms.Button();
this.buttonBeforeText = new System.Windows.Forms.Button();
this.buttonSetEnd = new System.Windows.Forms.Button();
@ -385,7 +383,6 @@
this.labelVideoPosition2 = new System.Windows.Forms.Label();
this.buttonAdjustGoToPosAndPause = new System.Windows.Forms.Button();
this.buttonAdjustPlayBefore = new System.Windows.Forms.Button();
this.timeUpDownVideoPositionAdjust = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.ShowSubtitleTimer = new System.Windows.Forms.Timer(this.components);
this.timerAutoDuration = new System.Windows.Forms.Timer(this.components);
this.timerAutoContinue = new System.Windows.Forms.Timer(this.components);
@ -416,7 +413,6 @@
this.tabControlSubtitle = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.splitContainerListViewAndText = new System.Windows.Forms.SplitContainer();
this.SubtitleListview1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
this.groupBoxEdit = new System.Windows.Forms.GroupBox();
this.labelSingleLine = new System.Windows.Forms.Label();
this.labelAlternateSingleLine = new System.Windows.Forms.Label();
@ -428,7 +424,6 @@
this.labelTextAlternateLineLengths = new System.Windows.Forms.Label();
this.labelAlternateText = new System.Windows.Forms.Label();
this.labelText = new System.Windows.Forms.Label();
this.textBoxListViewTextAlternate = new Nikse.SubtitleEdit.Controls.SETextBox();
this.contextMenuStripTextBoxListView = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItemWebVttVoice = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparatorWebVTT = new System.Windows.Forms.ToolStripSeparator();
@ -463,23 +458,28 @@
this.labelTextLineTotal = new System.Windows.Forms.Label();
this.labelCharactersPerSecond = new System.Windows.Forms.Label();
this.buttonUnBreak = new System.Windows.Forms.Button();
this.timeUpDownStartTime = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.numericUpDownDuration = new System.Windows.Forms.NumericUpDown();
this.buttonPrevious = new System.Windows.Forms.Button();
this.buttonNext = new System.Windows.Forms.Button();
this.labelStartTime = new System.Windows.Forms.Label();
this.textBoxListViewText = new Nikse.SubtitleEdit.Controls.SETextBox();
this.labelDuration = new System.Windows.Forms.Label();
this.labelAutoDuration = new System.Windows.Forms.Label();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.textBoxSource = new System.Windows.Forms.TextBox();
this.panelVideoPlayer = new System.Windows.Forms.Panel();
this.mediaPlayer = new Nikse.SubtitleEdit.Controls.VideoPlayerContainer();
this.contextMenuStripEmpty = new System.Windows.Forms.ContextMenuStrip(this.components);
this.insertLineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.imageListPlayRate = new System.Windows.Forms.ImageList(this.components);
this.timerTextUndo = new System.Windows.Forms.Timer(this.components);
this.timerAlternateTextUndo = new System.Windows.Forms.Timer(this.components);
this.SubtitleListview1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
this.textBoxListViewTextAlternate = new Nikse.SubtitleEdit.Controls.SETextBox();
this.timeUpDownStartTime = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.textBoxListViewText = new Nikse.SubtitleEdit.Controls.SETextBox();
this.mediaPlayer = new Nikse.SubtitleEdit.Controls.VideoPlayerContainer();
this.audioVisualizer = new Nikse.SubtitleEdit.Controls.AudioVisualizer();
this.timeUpDownVideoPosition = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.timeUpDownVideoPositionAdjust = new Nikse.SubtitleEdit.Controls.TimeUpDown();
this.statusStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
@ -940,6 +940,7 @@
this.toolStripMenuItemFcpProperties,
this.toolStripMenuItemSubStationAlpha,
this.toolStripMenuItemEbuProperties,
this.toolStripMenuItemDvdStudioProProperties,
this.toolStripSeparator20,
this.openOriginalToolStripMenuItem,
this.saveOriginalToolStripMenuItem,
@ -1063,6 +1064,13 @@
this.toolStripMenuItemEbuProperties.Text = "Ebu properties...";
this.toolStripMenuItemEbuProperties.Click += new System.EventHandler(this.toolStripMenuItemEbuProperties_Click);
//
// toolStripMenuItemDvdStudioProProperties
//
this.toolStripMenuItemDvdStudioProProperties.Name = "toolStripMenuItemDvdStudioProProperties";
this.toolStripMenuItemDvdStudioProProperties.Size = new System.Drawing.Size(330, 22);
this.toolStripMenuItemDvdStudioProProperties.Text = "DVD Studio Pro properties...";
this.toolStripMenuItemDvdStudioProProperties.Click += new System.EventHandler(this.toolStripMenuDvdStudioProperties_Click);
//
// toolStripSeparator20
//
this.toolStripSeparator20.Name = "toolStripSeparator20";
@ -2760,10 +2768,6 @@
//
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// fontDialog1
//
this.fontDialog1.Color = System.Drawing.SystemColors.ControlText;
//
// groupBoxVideo
//
this.groupBoxVideo.Controls.Add(this.labelNextWord);
@ -2795,44 +2799,6 @@
this.labelNextWord.Text = "Next: xxx";
this.labelNextWord.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// audioVisualizer
//
this.audioVisualizer.AllowDrop = true;
this.audioVisualizer.AllowNewSelection = true;
this.audioVisualizer.AllowOverlap = false;
this.audioVisualizer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.audioVisualizer.BackColor = System.Drawing.Color.Black;
this.audioVisualizer.BackgroundColor = System.Drawing.Color.Black;
this.audioVisualizer.Color = System.Drawing.Color.GreenYellow;
this.audioVisualizer.Font = new System.Drawing.Font("Segoe UI", 9F);
this.audioVisualizer.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(18)))));
this.audioVisualizer.Location = new System.Drawing.Point(472, 32);
this.audioVisualizer.Margin = new System.Windows.Forms.Padding(0);
this.audioVisualizer.Name = "audioVisualizer";
this.audioVisualizer.NewSelectionParagraph = null;
this.audioVisualizer.ParagraphColor = System.Drawing.Color.LimeGreen;
this.audioVisualizer.SceneChanges = ((System.Collections.Generic.List<double>)(resources.GetObject("audioVisualizer.SceneChanges")));
this.audioVisualizer.SelectedColor = System.Drawing.Color.Red;
this.audioVisualizer.ShowGridLines = true;
this.audioVisualizer.ShowSpectrogram = false;
this.audioVisualizer.ShowWaveform = true;
this.audioVisualizer.Size = new System.Drawing.Size(499, 229);
this.audioVisualizer.StartPositionSeconds = 0D;
this.audioVisualizer.TabIndex = 6;
this.audioVisualizer.TextBold = true;
this.audioVisualizer.TextColor = System.Drawing.Color.Gray;
this.audioVisualizer.TextSize = 9F;
this.audioVisualizer.VerticalZoomFactor = 1D;
this.audioVisualizer.WaveformNotLoadedText = "Click to add waveform";
this.audioVisualizer.WavePeaks = null;
this.audioVisualizer.ZoomFactor = 1D;
this.audioVisualizer.Click += new System.EventHandler(this.AudioWaveform_Click);
this.audioVisualizer.DragDrop += new System.Windows.Forms.DragEventHandler(this.AudioWaveformDragDrop);
this.audioVisualizer.DragEnter += new System.Windows.Forms.DragEventHandler(this.AudioWaveformDragEnter);
this.audioVisualizer.MouseEnter += new System.EventHandler(this.audioVisualizer_MouseEnter);
//
// checkBoxSyncListViewWithVideoWhilePlaying
//
this.checkBoxSyncListViewWithVideoWhilePlaying.AutoSize = true;
@ -3257,26 +3223,6 @@
this.tabPageCreate.Text = "Create";
this.tabPageCreate.UseVisualStyleBackColor = true;
//
// timeUpDownVideoPosition
//
this.timeUpDownVideoPosition.AutoSize = true;
this.timeUpDownVideoPosition.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownVideoPosition.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownVideoPosition.Location = new System.Drawing.Point(96, 191);
this.timeUpDownVideoPosition.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownVideoPosition.Name = "timeUpDownVideoPosition";
this.timeUpDownVideoPosition.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPosition.TabIndex = 12;
timeCode1.Hours = 0;
timeCode1.Milliseconds = 0;
timeCode1.Minutes = 0;
timeCode1.Seconds = 0;
timeCode1.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode1.TotalMilliseconds = 0D;
timeCode1.TotalSeconds = 0D;
this.timeUpDownVideoPosition.TimeCode = timeCode1;
this.timeUpDownVideoPosition.UseVideoOffset = false;
//
// buttonGotoSub
//
this.buttonGotoSub.Location = new System.Drawing.Point(6, 58);
@ -3690,26 +3636,6 @@
this.buttonAdjustPlayBefore.UseVisualStyleBackColor = true;
this.buttonAdjustPlayBefore.Click += new System.EventHandler(this.buttonBeforeText_Click);
//
// timeUpDownVideoPositionAdjust
//
this.timeUpDownVideoPositionAdjust.AutoSize = true;
this.timeUpDownVideoPositionAdjust.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownVideoPositionAdjust.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownVideoPositionAdjust.Location = new System.Drawing.Point(96, 213);
this.timeUpDownVideoPositionAdjust.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownVideoPositionAdjust.Name = "timeUpDownVideoPositionAdjust";
this.timeUpDownVideoPositionAdjust.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPositionAdjust.TabIndex = 13;
timeCode2.Hours = 0;
timeCode2.Milliseconds = 0;
timeCode2.Minutes = 0;
timeCode2.Seconds = 0;
timeCode2.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode2.TotalMilliseconds = 0D;
timeCode2.TotalSeconds = 0D;
this.timeUpDownVideoPositionAdjust.TimeCode = timeCode2;
this.timeUpDownVideoPositionAdjust.UseVideoOffset = false;
//
// ShowSubtitleTimer
//
this.ShowSubtitleTimer.Enabled = true;
@ -3974,36 +3900,6 @@
this.splitContainerListViewAndText.SplitterDistance = 91;
this.splitContainerListViewAndText.TabIndex = 2;
//
// SubtitleListview1
//
this.SubtitleListview1.AllowColumnReorder = true;
this.SubtitleListview1.AllowDrop = true;
this.SubtitleListview1.ContextMenuStrip = this.contextMenuStripListview;
this.SubtitleListview1.Dock = System.Windows.Forms.DockStyle.Fill;
this.SubtitleListview1.FirstVisibleIndex = -1;
this.SubtitleListview1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubtitleListview1.FullRowSelect = true;
this.SubtitleListview1.GridLines = true;
this.SubtitleListview1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.SubtitleListview1.HideSelection = false;
this.SubtitleListview1.Location = new System.Drawing.Point(0, 0);
this.SubtitleListview1.Name = "SubtitleListview1";
this.SubtitleListview1.OwnerDraw = true;
this.SubtitleListview1.Size = new System.Drawing.Size(724, 91);
this.SubtitleListview1.SubtitleFontBold = false;
this.SubtitleListview1.SubtitleFontName = "Tahoma";
this.SubtitleListview1.SubtitleFontSize = 8;
this.SubtitleListview1.TabIndex = 0;
this.SubtitleListview1.UseCompatibleStateImageBehavior = false;
this.SubtitleListview1.UseSyntaxColoring = true;
this.SubtitleListview1.View = System.Windows.Forms.View.Details;
this.SubtitleListview1.SelectedIndexChanged += new System.EventHandler(this.SubtitleListview1_SelectedIndexChanged);
this.SubtitleListview1.DragDrop += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragDrop);
this.SubtitleListview1.DragEnter += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragEnter);
this.SubtitleListview1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SubtitleListview1KeyDown);
this.SubtitleListview1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SubtitleListview1_MouseDoubleClick);
this.SubtitleListview1.MouseEnter += new System.EventHandler(this.SubtitleListview1_MouseEnter);
//
// groupBoxEdit
//
this.groupBoxEdit.Controls.Add(this.labelSingleLine);
@ -4139,28 +4035,6 @@
this.labelText.TabIndex = 5;
this.labelText.Text = "Text";
//
// textBoxListViewTextAlternate
//
this.textBoxListViewTextAlternate.AllowDrop = true;
this.textBoxListViewTextAlternate.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxListViewTextAlternate.ContextMenuStrip = this.contextMenuStripTextBoxListView;
this.textBoxListViewTextAlternate.Enabled = false;
this.textBoxListViewTextAlternate.HideSelection = false;
this.textBoxListViewTextAlternate.Location = new System.Drawing.Point(946, 28);
this.textBoxListViewTextAlternate.Multiline = true;
this.textBoxListViewTextAlternate.Name = "textBoxListViewTextAlternate";
this.textBoxListViewTextAlternate.Size = new System.Drawing.Size(0, 63);
this.textBoxListViewTextAlternate.TabIndex = 33;
this.textBoxListViewTextAlternate.Visible = false;
this.textBoxListViewTextAlternate.MouseClick += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextAlternateMouseClick);
this.textBoxListViewTextAlternate.TextChanged += new System.EventHandler(this.textBoxListViewTextAlternate_TextChanged);
this.textBoxListViewTextAlternate.Enter += new System.EventHandler(this.TextBoxListViewTextAlternateEnter);
this.textBoxListViewTextAlternate.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextAlternateKeyDown);
this.textBoxListViewTextAlternate.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextAlternateKeyUp);
this.textBoxListViewTextAlternate.MouseMove += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextAlternateMouseMove);
//
// contextMenuStripTextBoxListView
//
this.contextMenuStripTextBoxListView.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -4441,26 +4315,6 @@
this.buttonUnBreak.UseVisualStyleBackColor = true;
this.buttonUnBreak.Click += new System.EventHandler(this.ButtonUnBreakClick);
//
// timeUpDownStartTime
//
this.timeUpDownStartTime.AutoSize = true;
this.timeUpDownStartTime.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownStartTime.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownStartTime.Location = new System.Drawing.Point(9, 26);
this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownStartTime.Name = "timeUpDownStartTime";
this.timeUpDownStartTime.Size = new System.Drawing.Size(96, 27);
this.timeUpDownStartTime.TabIndex = 0;
timeCode3.Hours = 0;
timeCode3.Milliseconds = 0;
timeCode3.Minutes = 0;
timeCode3.Seconds = 0;
timeCode3.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode3.TotalMilliseconds = 0D;
timeCode3.TotalSeconds = 0D;
this.timeUpDownStartTime.TimeCode = timeCode3;
this.timeUpDownStartTime.UseVideoOffset = false;
//
// numericUpDownDuration
//
this.numericUpDownDuration.DecimalPlaces = 3;
@ -4514,28 +4368,6 @@
this.labelStartTime.TabIndex = 3;
this.labelStartTime.Text = "Start time";
//
// textBoxListViewText
//
this.textBoxListViewText.AllowDrop = true;
this.textBoxListViewText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxListViewText.ContextMenuStrip = this.contextMenuStripTextBoxListView;
this.textBoxListViewText.Enabled = false;
this.textBoxListViewText.HideSelection = false;
this.textBoxListViewText.Location = new System.Drawing.Point(236, 28);
this.textBoxListViewText.Multiline = true;
this.textBoxListViewText.Name = "textBoxListViewText";
this.textBoxListViewText.Size = new System.Drawing.Size(362, 63);
this.textBoxListViewText.TabIndex = 5;
this.textBoxListViewText.MouseClick += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextMouseClick);
this.textBoxListViewText.TextChanged += new System.EventHandler(this.TextBoxListViewTextTextChanged);
this.textBoxListViewText.Enter += new System.EventHandler(this.TextBoxListViewTextEnter);
this.textBoxListViewText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextKeyDown);
this.textBoxListViewText.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxListViewText_KeyUp);
this.textBoxListViewText.Leave += new System.EventHandler(this.textBoxListViewText_Leave);
this.textBoxListViewText.MouseMove += new System.Windows.Forms.MouseEventHandler(this.textBoxListViewText_MouseMove);
//
// labelDuration
//
this.labelDuration.AutoSize = true;
@ -4597,34 +4429,6 @@
this.panelVideoPlayer.Size = new System.Drawing.Size(220, 246);
this.panelVideoPlayer.TabIndex = 5;
//
// mediaPlayer
//
this.mediaPlayer.AllowDrop = true;
this.mediaPlayer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.mediaPlayer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.mediaPlayer.CurrentPosition = 0D;
this.mediaPlayer.FontSizeFactor = 1F;
this.mediaPlayer.LastParagraph = null;
this.mediaPlayer.Location = new System.Drawing.Point(0, 0);
this.mediaPlayer.Margin = new System.Windows.Forms.Padding(0);
this.mediaPlayer.Name = "mediaPlayer";
this.mediaPlayer.ShowFullscreenButton = true;
this.mediaPlayer.ShowMuteButton = true;
this.mediaPlayer.ShowStopButton = true;
this.mediaPlayer.Size = new System.Drawing.Size(219, 246);
this.mediaPlayer.SmpteMode = false;
this.mediaPlayer.SubtitleText = "";
this.mediaPlayer.TabIndex = 5;
this.mediaPlayer.TextRightToLeft = System.Windows.Forms.RightToLeft.No;
this.mediaPlayer.VideoHeight = 0;
this.mediaPlayer.VideoPlayer = null;
this.mediaPlayer.VideoWidth = 0;
this.mediaPlayer.Volume = 0D;
this.mediaPlayer.DragDrop += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragDrop);
this.mediaPlayer.DragEnter += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragEnter);
//
// contextMenuStripEmpty
//
this.contextMenuStripEmpty.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -4656,6 +4460,206 @@
this.timerAlternateTextUndo.Interval = 700;
this.timerAlternateTextUndo.Tick += new System.EventHandler(this.TimerAlternateTextUndoTick);
//
// SubtitleListview1
//
this.SubtitleListview1.AllowColumnReorder = true;
this.SubtitleListview1.AllowDrop = true;
this.SubtitleListview1.ContextMenuStrip = this.contextMenuStripListview;
this.SubtitleListview1.Dock = System.Windows.Forms.DockStyle.Fill;
this.SubtitleListview1.FirstVisibleIndex = -1;
this.SubtitleListview1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubtitleListview1.FullRowSelect = true;
this.SubtitleListview1.GridLines = true;
this.SubtitleListview1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.SubtitleListview1.HideSelection = false;
this.SubtitleListview1.Location = new System.Drawing.Point(0, 0);
this.SubtitleListview1.Name = "SubtitleListview1";
this.SubtitleListview1.OwnerDraw = true;
this.SubtitleListview1.Size = new System.Drawing.Size(724, 91);
this.SubtitleListview1.SubtitleFontBold = false;
this.SubtitleListview1.SubtitleFontName = "Tahoma";
this.SubtitleListview1.SubtitleFontSize = 8;
this.SubtitleListview1.TabIndex = 0;
this.SubtitleListview1.UseCompatibleStateImageBehavior = false;
this.SubtitleListview1.UseSyntaxColoring = true;
this.SubtitleListview1.View = System.Windows.Forms.View.Details;
this.SubtitleListview1.SelectedIndexChanged += new System.EventHandler(this.SubtitleListview1_SelectedIndexChanged);
this.SubtitleListview1.DragDrop += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragDrop);
this.SubtitleListview1.DragEnter += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragEnter);
this.SubtitleListview1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SubtitleListview1KeyDown);
this.SubtitleListview1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SubtitleListview1_MouseDoubleClick);
this.SubtitleListview1.MouseEnter += new System.EventHandler(this.SubtitleListview1_MouseEnter);
//
// textBoxListViewTextAlternate
//
this.textBoxListViewTextAlternate.AllowDrop = true;
this.textBoxListViewTextAlternate.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxListViewTextAlternate.ContextMenuStrip = this.contextMenuStripTextBoxListView;
this.textBoxListViewTextAlternate.Enabled = false;
this.textBoxListViewTextAlternate.HideSelection = false;
this.textBoxListViewTextAlternate.Location = new System.Drawing.Point(946, 28);
this.textBoxListViewTextAlternate.Multiline = true;
this.textBoxListViewTextAlternate.Name = "textBoxListViewTextAlternate";
this.textBoxListViewTextAlternate.Size = new System.Drawing.Size(0, 63);
this.textBoxListViewTextAlternate.TabIndex = 33;
this.textBoxListViewTextAlternate.Visible = false;
this.textBoxListViewTextAlternate.MouseClick += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextAlternateMouseClick);
this.textBoxListViewTextAlternate.TextChanged += new System.EventHandler(this.textBoxListViewTextAlternate_TextChanged);
this.textBoxListViewTextAlternate.Enter += new System.EventHandler(this.TextBoxListViewTextAlternateEnter);
this.textBoxListViewTextAlternate.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextAlternateKeyDown);
this.textBoxListViewTextAlternate.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextAlternateKeyUp);
this.textBoxListViewTextAlternate.MouseMove += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextAlternateMouseMove);
//
// timeUpDownStartTime
//
this.timeUpDownStartTime.AutoSize = true;
this.timeUpDownStartTime.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownStartTime.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownStartTime.Location = new System.Drawing.Point(9, 26);
this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownStartTime.Name = "timeUpDownStartTime";
this.timeUpDownStartTime.Size = new System.Drawing.Size(96, 27);
this.timeUpDownStartTime.TabIndex = 0;
timeCode4.Hours = 0;
timeCode4.Milliseconds = 0;
timeCode4.Minutes = 0;
timeCode4.Seconds = 0;
timeCode4.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode4.TotalMilliseconds = 0D;
timeCode4.TotalSeconds = 0D;
this.timeUpDownStartTime.TimeCode = timeCode4;
this.timeUpDownStartTime.UseVideoOffset = false;
//
// textBoxListViewText
//
this.textBoxListViewText.AllowDrop = true;
this.textBoxListViewText.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxListViewText.ContextMenuStrip = this.contextMenuStripTextBoxListView;
this.textBoxListViewText.Enabled = false;
this.textBoxListViewText.HideSelection = false;
this.textBoxListViewText.Location = new System.Drawing.Point(236, 28);
this.textBoxListViewText.Multiline = true;
this.textBoxListViewText.Name = "textBoxListViewText";
this.textBoxListViewText.Size = new System.Drawing.Size(362, 63);
this.textBoxListViewText.TabIndex = 5;
this.textBoxListViewText.MouseClick += new System.Windows.Forms.MouseEventHandler(this.TextBoxListViewTextMouseClick);
this.textBoxListViewText.TextChanged += new System.EventHandler(this.TextBoxListViewTextTextChanged);
this.textBoxListViewText.Enter += new System.EventHandler(this.TextBoxListViewTextEnter);
this.textBoxListViewText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBoxListViewTextKeyDown);
this.textBoxListViewText.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxListViewText_KeyUp);
this.textBoxListViewText.Leave += new System.EventHandler(this.textBoxListViewText_Leave);
this.textBoxListViewText.MouseMove += new System.Windows.Forms.MouseEventHandler(this.textBoxListViewText_MouseMove);
//
// mediaPlayer
//
this.mediaPlayer.AllowDrop = true;
this.mediaPlayer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.mediaPlayer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.mediaPlayer.CurrentPosition = 0D;
this.mediaPlayer.FontSizeFactor = 1F;
this.mediaPlayer.LastParagraph = null;
this.mediaPlayer.Location = new System.Drawing.Point(0, 0);
this.mediaPlayer.Margin = new System.Windows.Forms.Padding(0);
this.mediaPlayer.Name = "mediaPlayer";
this.mediaPlayer.ShowFullscreenButton = true;
this.mediaPlayer.ShowMuteButton = true;
this.mediaPlayer.ShowStopButton = true;
this.mediaPlayer.Size = new System.Drawing.Size(219, 246);
this.mediaPlayer.SmpteMode = false;
this.mediaPlayer.SubtitleText = "";
this.mediaPlayer.TabIndex = 5;
this.mediaPlayer.TextRightToLeft = System.Windows.Forms.RightToLeft.No;
this.mediaPlayer.VideoHeight = 0;
this.mediaPlayer.VideoPlayer = null;
this.mediaPlayer.VideoWidth = 0;
this.mediaPlayer.Volume = 0D;
this.mediaPlayer.DragDrop += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragDrop);
this.mediaPlayer.DragEnter += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragEnter);
//
// audioVisualizer
//
this.audioVisualizer.AllowDrop = true;
this.audioVisualizer.AllowNewSelection = true;
this.audioVisualizer.AllowOverlap = false;
this.audioVisualizer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.audioVisualizer.BackColor = System.Drawing.Color.Black;
this.audioVisualizer.BackgroundColor = System.Drawing.Color.Black;
this.audioVisualizer.Color = System.Drawing.Color.GreenYellow;
this.audioVisualizer.Font = new System.Drawing.Font("Segoe UI", 9F);
this.audioVisualizer.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(18)))));
this.audioVisualizer.Location = new System.Drawing.Point(472, 32);
this.audioVisualizer.Margin = new System.Windows.Forms.Padding(0);
this.audioVisualizer.Name = "audioVisualizer";
this.audioVisualizer.NewSelectionParagraph = null;
this.audioVisualizer.ParagraphColor = System.Drawing.Color.LimeGreen;
this.audioVisualizer.SceneChanges = ((System.Collections.Generic.List<double>)(resources.GetObject("audioVisualizer.SceneChanges")));
this.audioVisualizer.SelectedColor = System.Drawing.Color.Red;
this.audioVisualizer.ShowGridLines = true;
this.audioVisualizer.ShowSpectrogram = false;
this.audioVisualizer.ShowWaveform = true;
this.audioVisualizer.Size = new System.Drawing.Size(499, 229);
this.audioVisualizer.StartPositionSeconds = 0D;
this.audioVisualizer.TabIndex = 6;
this.audioVisualizer.TextBold = true;
this.audioVisualizer.TextColor = System.Drawing.Color.Gray;
this.audioVisualizer.TextSize = 9F;
this.audioVisualizer.VerticalZoomFactor = 1D;
this.audioVisualizer.WaveformNotLoadedText = "Click to add waveform";
this.audioVisualizer.WavePeaks = null;
this.audioVisualizer.ZoomFactor = 1D;
this.audioVisualizer.Click += new System.EventHandler(this.AudioWaveform_Click);
this.audioVisualizer.DragDrop += new System.Windows.Forms.DragEventHandler(this.AudioWaveformDragDrop);
this.audioVisualizer.DragEnter += new System.Windows.Forms.DragEventHandler(this.AudioWaveformDragEnter);
this.audioVisualizer.MouseEnter += new System.EventHandler(this.audioVisualizer_MouseEnter);
//
// timeUpDownVideoPosition
//
this.timeUpDownVideoPosition.AutoSize = true;
this.timeUpDownVideoPosition.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownVideoPosition.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownVideoPosition.Location = new System.Drawing.Point(96, 191);
this.timeUpDownVideoPosition.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownVideoPosition.Name = "timeUpDownVideoPosition";
this.timeUpDownVideoPosition.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPosition.TabIndex = 12;
timeCode5.Hours = 0;
timeCode5.Milliseconds = 0;
timeCode5.Minutes = 0;
timeCode5.Seconds = 0;
timeCode5.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode5.TotalMilliseconds = 0D;
timeCode5.TotalSeconds = 0D;
this.timeUpDownVideoPosition.TimeCode = timeCode5;
this.timeUpDownVideoPosition.UseVideoOffset = false;
//
// timeUpDownVideoPositionAdjust
//
this.timeUpDownVideoPositionAdjust.AutoSize = true;
this.timeUpDownVideoPositionAdjust.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.timeUpDownVideoPositionAdjust.Font = new System.Drawing.Font("Segoe UI", 9F);
this.timeUpDownVideoPositionAdjust.Location = new System.Drawing.Point(96, 213);
this.timeUpDownVideoPositionAdjust.Margin = new System.Windows.Forms.Padding(4);
this.timeUpDownVideoPositionAdjust.Name = "timeUpDownVideoPositionAdjust";
this.timeUpDownVideoPositionAdjust.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPositionAdjust.TabIndex = 13;
timeCode6.Hours = 0;
timeCode6.Milliseconds = 0;
timeCode6.Minutes = 0;
timeCode6.Seconds = 0;
timeCode6.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode6.TotalMilliseconds = 0D;
timeCode6.TotalSeconds = 0D;
this.timeUpDownVideoPositionAdjust.TimeCode = timeCode6;
this.timeUpDownVideoPositionAdjust.UseVideoOffset = false;
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -4861,7 +4865,6 @@
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemImportText;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemImportTimeCodes;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemFont;
private System.Windows.Forms.FontDialog fontDialog1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
private System.Windows.Forms.GroupBox groupBoxVideo;
private System.Windows.Forms.Button buttonGotoSub;
@ -5152,7 +5155,7 @@
private System.Windows.Forms.ToolStripMenuItem checkForUpdatesToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItemSplitterCheckForUpdates;
private System.Windows.Forms.ToolStripMenuItem setVideoOffsetToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemEbuProperties;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemDvdStudioProProperties;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemEdlClipName;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAddWaveformBatch;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemExportBdTextSt;
@ -5177,5 +5180,6 @@
private System.Windows.Forms.ToolStripMenuItem moveTextDownToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem generateTextFromCurrentVideoToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemSplitViaWaveform;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemEbuProperties;
}
}

View File

@ -10295,34 +10295,38 @@ namespace Nikse.SubtitleEdit.Forms
{
if (_subtitle.Paragraphs.Count > 0 && SubtitleListview1.SelectedItems.Count > 0)
{
if (fontDialog1.ShowDialog(this) == DialogResult.OK)
using (var form = new ChooseFontName())
{
MakeHistoryForUndo(_language.BeforeSettingFontName);
foreach (ListViewItem item in SubtitleListview1.SelectedItems)
if (form.ShowDialog(this) == DialogResult.OK)
{
var p = _subtitle.GetParagraphOrDefault(item.Index);
if (p != null)
MakeHistoryForUndo(_language.BeforeSettingFontName);
foreach (ListViewItem item in SubtitleListview1.SelectedItems)
{
SetFontName(p);
SubtitleListview1.SetText(item.Index, p.Text);
if (_subtitleAlternate != null && Configuration.Settings.General.AllowEditOfOriginalSubtitle && SubtitleListview1.IsAlternateTextColumnVisible)
var p = _subtitle.GetParagraphOrDefault(item.Index);
if (p != null)
{
var original = Utilities.GetOriginalParagraph(item.Index, p, _subtitleAlternate.Paragraphs);
if (original != null)
SetFontName(p, form.FontName);
SubtitleListview1.SetText(item.Index, p.Text);
if (_subtitleAlternate != null && Configuration.Settings.General.AllowEditOfOriginalSubtitle && SubtitleListview1.IsAlternateTextColumnVisible)
{
SetFontName(original);
SubtitleListview1.SetAlternateText(item.Index, original.Text);
var original = Utilities.GetOriginalParagraph(item.Index, p, _subtitleAlternate.Paragraphs);
if (original != null)
{
SetFontName(original, form.FontName);
SubtitleListview1.SetAlternateText(item.Index, original.Text);
}
}
}
}
RefreshSelectedParagraph();
}
RefreshSelectedParagraph();
}
}
}
private void SetFontName(Paragraph p)
private void SetFontName(Paragraph p, string fontName)
{
if (p == null)
return;
@ -10338,7 +10342,7 @@ namespace Nikse.SubtitleEdit.Forms
if (f.Contains(" color=") && !f.Contains(" face="))
{
var start = s.IndexOf(" color=", StringComparison.Ordinal);
p.Text = s.Insert(start, string.Format(" face=\"{0}\"", fontDialog1.Font.Name));
p.Text = s.Insert(start, string.Format(" face=\"{0}\"", fontName));
return;
}
@ -10347,13 +10351,13 @@ namespace Nikse.SubtitleEdit.Forms
{
if (s.IndexOf('"', faceStart + 7) > 0)
end = s.IndexOf('"', faceStart + 7);
p.Text = s.Substring(0, faceStart) + string.Format(" face=\"{0}", fontDialog1.Font.Name) + s.Substring(end);
p.Text = s.Substring(0, faceStart) + string.Format(" face=\"{0}", fontName) + s.Substring(end);
return;
}
}
}
p.Text = string.Format("<font face=\"{0}\">{1}</font>", fontDialog1.Font.Name, s);
p.Text = string.Format("<font face=\"{0}\">{1}</font>", fontName, s);
}
private void TypeEffectToolStripMenuItemClick(object sender, EventArgs e)
@ -10968,6 +10972,7 @@ namespace Nikse.SubtitleEdit.Forms
var subtitles = new List<BluRaySupParser.PcsData>();
var log = new StringBuilder();
var clusterStream = new MemoryStream();
var lastPalettes = new Dictionary<int, List<PaletteInfo>>();
foreach (var p in sub)
{
byte[] buffer = p.GetData(matroskaSubtitleInfo);
@ -10981,7 +10986,7 @@ namespace Nikse.SubtitleEdit.Forms
subtitles[subtitles.Count - 1].EndTime = (long)((p.Start - 1) * 90.0);
}
clusterStream.Position = 0;
var list = BluRaySupParser.ParseBluRaySup(clusterStream, log, true);
var list = BluRaySupParser.ParseBluRaySup(clusterStream, log, true, lastPalettes);
foreach (var sup in list)
{
sup.StartTime = (long)((p.Start - 1) * 90.0);
@ -16544,12 +16549,13 @@ namespace Nikse.SubtitleEdit.Forms
removeOriginalToolStripMenuItem.Visible = false;
}
var format = GetCurrentSubtitleFormat();
if (format.GetType() == typeof(AdvancedSubStationAlpha))
var ft = format.GetType();
if (ft == typeof(AdvancedSubStationAlpha))
{
toolStripMenuItemSubStationAlpha.Visible = true;
toolStripMenuItemSubStationAlpha.Text = _language.Menu.File.AdvancedSubStationAlphaProperties;
}
else if (format.GetType() == typeof(SubStationAlpha))
else if (ft == typeof(SubStationAlpha))
{
toolStripMenuItemSubStationAlpha.Visible = true;
toolStripMenuItemSubStationAlpha.Text = _language.Menu.File.SubStationAlphaProperties;
@ -16559,7 +16565,7 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemSubStationAlpha.Visible = false;
}
if (format.GetType() == typeof(Ebu))
if (ft == typeof(Ebu))
{
toolStripMenuItemEbuProperties.Text = _language.Menu.File.EbuProperties;
toolStripMenuItemEbuProperties.Visible = !string.IsNullOrEmpty(_language.Menu.File.EbuProperties);
@ -16569,7 +16575,20 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemEbuProperties.Visible = false;
}
if (format.GetType() == typeof(DCinemaInterop) || format.GetType() == typeof(DCinemaSmpte2010) || format.GetType() == typeof(DCinemaSmpte2007))
if (ft == typeof(DvdStudioPro) ||
ft == typeof(DvdStudioProSpace) ||
ft == typeof(DvdStudioProSpaceOne) ||
ft == typeof(DvdStudioProSpaceOneSemicolon))
{
toolStripMenuItemDvdStudioProProperties.Text = _language.Menu.File.DvdStuioProProperties;
toolStripMenuItemDvdStudioProProperties.Visible = true;
}
else
{
toolStripMenuItemDvdStudioProProperties.Visible = false;
}
if (ft == typeof(DCinemaInterop) || ft == typeof(DCinemaSmpte2010) || ft == typeof(DCinemaSmpte2007))
{
toolStripMenuItemDCinemaProperties.Visible = true;
}
@ -16578,7 +16597,7 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemDCinemaProperties.Visible = false;
}
if (format.GetType() == typeof(TimedText10) || format.GetType() == typeof(ItunesTimedText))
if (ft == typeof(TimedText10) || ft == typeof(ItunesTimedText))
{
toolStripMenuItemTTProperties.Visible = true;
}
@ -16588,7 +16607,7 @@ namespace Nikse.SubtitleEdit.Forms
}
toolStripMenuItemNuendoProperties.Visible = format.Name == "Nuendo";
toolStripMenuItemFcpProperties.Visible = format.GetType() == typeof(FinalCutProXml);
toolStripMenuItemFcpProperties.Visible = ft == typeof(FinalCutProXml);
toolStripSeparator20.Visible = subtitleLoaded;
}
@ -18405,38 +18424,41 @@ namespace Nikse.SubtitleEdit.Forms
string text = tb.SelectedText;
int selectionStart = tb.SelectionStart;
if (fontDialog1.ShowDialog(this) == DialogResult.OK)
using (var form = new ChooseFontName())
{
bool done = false;
if (text.StartsWith("<font ", StringComparison.Ordinal))
if (form.ShowDialog(this) == DialogResult.OK)
{
int end = text.IndexOf('>');
if (end > 0)
bool done = false;
if (text.StartsWith("<font ", StringComparison.Ordinal))
{
string f = text.Substring(0, end);
if (f.Contains(" color=") && !f.Contains(" face="))
int end = text.IndexOf('>');
if (end > 0)
{
var start = text.IndexOf(" color=", StringComparison.Ordinal);
text = text.Insert(start, string.Format(" face=\"{0}\"", fontDialog1.Font.Name));
done = true;
}
else if (f.Contains(" face="))
{
int faceStart = f.IndexOf(" face=", StringComparison.Ordinal);
if (text.IndexOf('"', faceStart + " face=".Length + 1) > 0)
end = text.IndexOf('"', faceStart + " face=".Length + 1);
text = text.Substring(0, faceStart) + string.Format(" face=\"{0}", fontDialog1.Font.Name) + text.Substring(end);
done = true;
string f = text.Substring(0, end);
if (f.Contains(" color=") && !f.Contains(" face="))
{
var start = text.IndexOf(" color=", StringComparison.Ordinal);
text = text.Insert(start, string.Format(" face=\"{0}\"", form.FontName));
done = true;
}
else if (f.Contains(" face="))
{
int faceStart = f.IndexOf(" face=", StringComparison.Ordinal);
if (text.IndexOf('"', faceStart + " face=".Length + 1) > 0)
end = text.IndexOf('"', faceStart + " face=".Length + 1);
text = text.Substring(0, faceStart) + string.Format(" face=\"{0}", form.FontName) + text.Substring(end);
done = true;
}
}
}
}
if (!done)
text = string.Format("<font face=\"{0}\">{1}</font>", fontDialog1.Font.Name, text);
if (!done)
text = string.Format("<font face=\"{0}\">{1}</font>", form.FontName, text);
tb.SelectedText = text;
tb.SelectionStart = selectionStart;
tb.SelectionLength = text.Length;
tb.SelectedText = text;
tb.SelectionStart = selectionStart;
tb.SelectionLength = text.Length;
}
}
}
@ -22839,6 +22861,14 @@ namespace Nikse.SubtitleEdit.Forms
{
toolStripMenuItemSplitViaWaveform_Click(sender, e);
}
private void toolStripMenuDvdStudioProperties_Click(object sender, EventArgs e)
{
using (var form = new DvdStudioProProperties())
{
form.ShowDialog(this);
}
}
}
}

View File

@ -462,20 +462,20 @@
<data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALlSURBVFhHtZfPaxNBFMdHs7/GpPtzehS86sGzB7178e7B
P8CLdw+CR6tYERQasAUtxVZrm4QiKFaDp1KqoNCW0oppdrOCB/FSEfzR9b0wCdvJK5hN9gvf07y375M3
+2Yn7DBtWH4Sc9HjpuaekyGkaoaTUL7OmCZD/k9vTJcEaJnBggwhRRVH9w2wBAA7VtADsM7Fn4bpnJBh
PaKKo/sGuGk4+8sG3YWIB+MyrEdUcXQmgFnNTppEF2JTfF9nrCRDD4gqjs4EUNHtpG54vQDg0By9IkMP
iCqOzgSAiVMFmwSILW8bHnpUhnelFu44M8AkbMOaSY9ky3AvyPCu1MIdZwZ4AtswrTkkQGiJZRnelVq4
48wA6FuFkWSTOJhec7Ef6e5pmdJWumjaAwFMaCPJok53IbKCSZnSVrpo2gMBTMN7cBu68JkaSe783Gal
UZmWDwCO4xgAvDzkYGpZ4ppMY/MQmy7c8UAA6LsAcA8MBX+pALHufIGDycC8h9CtdF7HAwPgOGIXIu7P
9gCAI8u9hHn3ISad1/HAADiObQDNP0MCmOJdOw9iFoltGBgAjeOIa7ERrFAQTc07i5D40qq5QwHAccS1
UBcXKQC4KzxDAIxTc4cCgL8M1+rwsJgHoQqAdwV8B7BTODnp3KEA4EPlMoss76oKgH4Fo4pdmMkDAC2X
Wchsf4uXfqgAu3BY4aFVVrZh6ACo2BJlFQBd1d1kHCDSebkANAz/JH6QVIAt6AKO4+PUNuQCgGpZwQsV
AD0Dn/AHqW3IDSA85p2nAN7DJeZOahtyAwAdibjYpCDKMLZzchvyBGAtHlymAN7ChRa/IZiXK8AHxopw
Vf+mAoTwMk7IbcgVANXiYkwFQD+HkXwK25A/APOON7j4rQJ8gi48gm3IHQAFf9nmVAB0Fe6TfQMsGMW9
WqHYqOnOalW3lyqGPVXRnRtymdSu4Z9aNZyVNfjT8lH3vm7w4t4OdKXOxV8agLF/k7CuVx7nm68AAAAA
SUVORK5CYII=
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALoSURBVFhHtZfPaxNBFMdHs7/GpNns7vQoeNWDZw969+Ld
g3+AF+8eBE9iFSuCQgO2oKXY+qNNQhEsFoOnUqqg0JbSimn2h+BBvFQEf3R9L0zCdvYVzCb7he9p3tv3
yZt9sxN2mDYsN464SLmtVc7JEFINw44pX2dMkyH/pzdmhQQITW9ehpCiiqP7BlgEgB3LSwGsc/GnZdon
ZFhKVHF03wA3DHt/2aC7EHBvXIalRBVHZwKY1cpxm+hCZIrv64yVZOgBUcXRmQBqejluGk4aAOybo1dk
6AFRxdGZADBxqlAmASLL2YaHHpXhPamFu84MMAnbsGbSIxkalQsyvCe1cNeZAZ7CNkxrNgngW2JZhvek
Fu46MwD6dmEk3iQOpiUu9gO9clqmdJQsmvRAABPaSLyg010ILG9SpnSULJr0QADT8B7cgS58pkaS2z+3
WWlUpuUDgOM4BgBLhxxMoSWuyTT2HGKThbseCAB9DwDug6HgLxUg0u0vcDAZmPcIupXM63pgABxH7ELA
3dkUADiwKpcw7wHEJPO6HhgAx7EDoLlnSABTvMO8WxCzQGzDwABoHEdciwxvhYJoa85ZhMSXVs0dCgCO
I675urhIAcBd4QUCYJyaOxQA/GW41oSHRdzzVQC8K+A7gJ3CyUnmDgUAHyqXWWA5V1UA9GsYVezCTB4A
aLnMfFZ2t3jphwqwC4cVHlpVZRuGDoCKLFFVAdB1vRKPA0QyLxeAluGexA+SCrAFXcBxfJLYhlwAUKHl
vVIB0DPwCX+Y2IbcAPxjznkK4D1cYu4mtiE3ANCRgItNCqIKYzsntyFPABZy7zIF8BYutPgNwbxcAT4w
VoSr+jcVwIeXcUJuQ64AqJCLMRUA/RJG8hlsQ/4AzDne4uK3CvAJuvAYtiF3ABT8ZZtTAdB1uE/2DTBv
FPcahWKrodurdb28WDPKUzXdvimXSe0a7qlVw15Zgz8tH3Xn6wYv7u1AV5pc/KUBGPsH8xCt33v4vv0A
AAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButtonSettings.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -650,18 +650,9 @@
<metadata name="colorDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>813, 17</value>
</metadata>
<metadata name="fontDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>825, 56</value>
<metadata name="toolStripWaveControls.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>650, 56</value>
</metadata>
<data name="audioVisualizer.SceneChanges" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkRvdWJsZQMAAAAGX2l0
ZW1zBV9zaXplCF92ZXJzaW9uBwAABggIAgAAAAkDAAAAAAAAAAAAAAAPAwAAAAAAAAAGCw==
</value>
</data>
<metadata name="toolStripWaveControls.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>650, 56</value>
</metadata>
@ -771,7 +762,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAAegBJAHoASQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAQgBJQEIASUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -818,6 +809,15 @@
<metadata name="timerAlternateTextUndo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>916, 95</value>
</metadata>
<data name="audioVisualizer.SceneChanges" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkRvdWJsZQMAAAAGX2l0
ZW1zBV9zaXplCF92ZXJzaW9uBwAABggIAgAAAAkDAAAAAAAAAAAAAAAPAwAAAAAAAAAGCw==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>145</value>
</metadata>

View File

@ -1115,7 +1115,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
_subtitle.Renumber();
FixShortDisplayTimes(_subtitle);
subtitleListView1.Fill(_subtitle);
subtitleListView1.SelectIndexAndEnsureVisible(0);

View File

@ -58,6 +58,7 @@
//
// SubtitleListview1
//
this.SubtitleListview1.AllowColumnReorder = true;
this.SubtitleListview1.AllowDrop = true;
this.SubtitleListview1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
@ -66,6 +67,7 @@
this.SubtitleListview1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubtitleListview1.FullRowSelect = true;
this.SubtitleListview1.GridLines = true;
this.SubtitleListview1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.SubtitleListview1.HideSelection = false;
this.SubtitleListview1.Location = new System.Drawing.Point(6, 19);
this.SubtitleListview1.Name = "SubtitleListview1";
@ -87,11 +89,6 @@
0,
0,
0});
this.numericUpDownMinMillisecondsBetweenLines.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDownMinMillisecondsBetweenLines.Name = "numericUpDownMinMillisecondsBetweenLines";
this.numericUpDownMinMillisecondsBetweenLines.Size = new System.Drawing.Size(64, 21);
this.numericUpDownMinMillisecondsBetweenLines.TabIndex = 1;

View File

@ -23,7 +23,6 @@ namespace Nikse.SubtitleEdit.Forms
}
private string _subtitleFileName;
private string _videoFileName;
private int _audioTrackNumber;
private Subtitle _subtitle;
private Subtitle _originalSubtitle;
@ -32,15 +31,9 @@ namespace Nikse.SubtitleEdit.Forms
private readonly Keys _mainGeneralGoToNextSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralGoToNextSubtitle);
private readonly Keys _mainGeneralGoToPrevSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralGoToPrevSubtitle);
public string VideoFileName
{
get { return _videoFileName; }
}
public string VideoFileName { get; private set; }
public Subtitle FixedSubtitle
{
get { return _subtitle; }
}
public Subtitle FixedSubtitle => _subtitle;
public SyncPointsSync()
{
@ -76,7 +69,7 @@ namespace Nikse.SubtitleEdit.Forms
_subtitle = new Subtitle(subtitle);
_originalSubtitle = subtitle;
_subtitleFileName = subtitleFileName;
_videoFileName = videoFileName;
VideoFileName = videoFileName;
_audioTrackNumber = audioTrackNumber;
SubtitleListview1.Fill(subtitle);
if (SubtitleListview1.Items.Count > 0)
@ -115,7 +108,7 @@ namespace Nikse.SubtitleEdit.Forms
_otherSubtitle = otherSubtitle;
_originalSubtitle = subtitle;
_subtitleFileName = subtitleFileName;
_videoFileName = videoFileName;
VideoFileName = videoFileName;
_audioTrackNumber = audioTrackNumber;
SubtitleListview1.Fill(subtitle);
if (SubtitleListview1.Items.Count > 0)
@ -137,7 +130,7 @@ namespace Nikse.SubtitleEdit.Forms
MinimumSize = new Size(Width - 50, MinimumSize.Height);
}
private void RefreshSynchronizationPointsUI()
private void RefreshSynchronizationPointsUi()
{
buttonApplySync.Enabled = _synchronizationPoints.Count > 0;
labelNoOfSyncPoints.Text = string.Format(Configuration.Settings.Language.PointSync.SyncPointsX, _synchronizationPoints.Count);
@ -148,8 +141,7 @@ namespace Nikse.SubtitleEdit.Forms
{
if (_synchronizationPoints.ContainsKey(i))
{
var p = new Paragraph();
p.StartTime.TotalMilliseconds = _synchronizationPoints[i].TotalMilliseconds;
var p = new Paragraph { StartTime = { TotalMilliseconds = _synchronizationPoints[i].TotalMilliseconds } };
p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + _subtitle.Paragraphs[i].Duration.TotalMilliseconds;
SubtitleListview1.SetStartTimeAndDuration(i, p, _subtitle.GetParagraphOrDefault(i + 1), _subtitle.GetParagraphOrDefault(i - 1));
@ -180,18 +172,18 @@ namespace Nikse.SubtitleEdit.Forms
using (var getTime = new SetSyncPoint())
{
int index = SubtitleListview1.SelectedItems[0].Index;
getTime.Initialize(_subtitle, _subtitleFileName, index, _videoFileName, _audioTrackNumber);
getTime.Initialize(_subtitle, _subtitleFileName, index, VideoFileName, _audioTrackNumber);
if (getTime.ShowDialog(this) == DialogResult.OK)
{
if (_synchronizationPoints.ContainsKey(index))
_synchronizationPoints[index] = getTime.SynchronizationPoint;
else
_synchronizationPoints.Add(index, getTime.SynchronizationPoint);
RefreshSynchronizationPointsUI();
_videoFileName = getTime.VideoFileName;
RefreshSynchronizationPointsUi();
VideoFileName = getTime.VideoFileName;
}
Activate();
_videoFileName = getTime.VideoFileName;
VideoFileName = getTime.VideoFileName;
}
}
}
@ -209,7 +201,7 @@ namespace Nikse.SubtitleEdit.Forms
_synchronizationPoints[index] = TimeSpan.FromMilliseconds(_otherSubtitle.Paragraphs[indexOther].StartTime.TotalMilliseconds);
else
_synchronizationPoints.Add(index, TimeSpan.FromMilliseconds(_otherSubtitle.Paragraphs[indexOther].StartTime.TotalMilliseconds));
RefreshSynchronizationPointsUI();
RefreshSynchronizationPointsUi();
}
SetSyncFactorLabel();
}
@ -221,7 +213,7 @@ namespace Nikse.SubtitleEdit.Forms
int index = SubtitleListview1.SelectedItems[0].Index;
if (_synchronizationPoints.ContainsKey(index))
_synchronizationPoints.Remove(index);
RefreshSynchronizationPointsUI();
RefreshSynchronizationPointsUi();
}
SetSyncFactorLabel();
}
@ -300,7 +292,7 @@ namespace Nikse.SubtitleEdit.Forms
double subStart = _originalSubtitle.Paragraphs[_synchronizationPoints.First().Key].StartTime.TotalMilliseconds / TimeCode.BaseUnit;
var adjustment = startPos - subStart;
labelAdjustFactor.Text = string.Format("{0:+0.000;-0.000}", adjustment);
labelAdjustFactor.Text = $"{adjustment:+0.000;-0.000}";
}
else if (_synchronizationPoints.Count == 2)
{
@ -319,7 +311,7 @@ namespace Nikse.SubtitleEdit.Forms
// adjust to starting position
double adjust = startPos - subStart * factor;
labelAdjustFactor.Text = string.Format("*{0:0.000}, {1:+0.000;-0.000}", factor, adjust);
labelAdjustFactor.Text = $"*{factor:0.000}, {adjust:+0.000;-0.000}";
}
}
@ -334,7 +326,7 @@ namespace Nikse.SubtitleEdit.Forms
double realDiff = endPos - startPos;
// speed factor
double factor = realDiff / subDiff;
double factor = Math.Abs(subDiff) < 0.001 ? 1 : realDiff / subDiff;
// adjust to starting position
double adjust = startPos - subStart * factor;
@ -360,7 +352,7 @@ namespace Nikse.SubtitleEdit.Forms
AdjustViaShowEarlierLater(kvp.Key, kvp.Value.TotalMilliseconds);
_synchronizationPoints = new SortedDictionary<int, TimeSpan>();
SubtitleListview1.Fill(_subtitle);
RefreshSynchronizationPointsUI();
RefreshSynchronizationPointsUi();
return;
}
@ -384,7 +376,7 @@ namespace Nikse.SubtitleEdit.Forms
if (i == syncIndices.Count - 1)
maxIndex = _subtitle.Paragraphs.Count;
else
maxIndex = syncIndices[i]; // maxIndex = syncIndices[i + 1];
maxIndex = syncIndices[i];
Sync(startIndex, endIndex, minIndex, maxIndex, _synchronizationPoints[startIndex].TotalMilliseconds / TimeCode.BaseUnit, _synchronizationPoints[endIndex].TotalMilliseconds / TimeCode.BaseUnit);
@ -392,7 +384,7 @@ namespace Nikse.SubtitleEdit.Forms
}
}
SubtitleListview1.Fill(_subtitle);
RefreshSynchronizationPointsUI();
RefreshSynchronizationPointsUi();
}
private void AdjustViaShowEarlierLater(int index, double newTotalMilliseconds)

View File

@ -54,7 +54,6 @@
<OverlapNextX>Következő átfedése ({0:#,##0.###})</OverlapNextX>
<Negative>Negatív</Negative>
<RegularExpressionIsNotValid>A reguláris kifejezés érvénytelen!</RegularExpressionIsNotValid>
<SubtitleSaved>Felirat mentve</SubtitleSaved>
<CurrentSubtitle>Aktuális felirat</CurrentSubtitle>
<OriginalText>Eredeti szöveg</OriginalText>
<OpenOriginalSubtitleFile>Eredeti feliratfájl megnyitása...</OpenOriginalSubtitleFile>
@ -77,6 +76,7 @@
<Before>Előtte</Before>
<After>Utána</After>
<Size>Méret</Size>
<Search>Keresés</Search>
</General>
<About>
<Title>Subtitle Edit névjegy</Title>
@ -143,13 +143,22 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<AddSeconds>Másodpercek hozzáadása</AddSeconds>
<SetAsPercent>Beállítás az időtartam százalékaként</SetAsPercent>
<Note>Megjegyzés: A megjelenítési idő nem fogja fedni a következő szöveg kezdési idejét</Note>
<PleaseSelectAValueFromTheDropDownList>Kérjük, válasszon egy értéket a legördülő listából</PleaseSelectAValueFromTheDropDownList>
<Fixed>Rögzített</Fixed>
<Milliseconds>ezredmásodperc</Milliseconds>
</AdjustDisplayDuration>
<ApplyDurationLimits>
<Title>Időtartam-korlátok alkalmazása</Title>
<FixesAvailable>Elérhető javítások: {0}</FixesAvailable>
<UnableToFix>Sikertelen javítás: {0}</UnableToFix>
</ApplyDurationLimits>
<AudioToText>
<Title>Hang szövegbe</Title>
<ExtractingAudioUsingX>Hang kiemelése a következővel {0}...</ExtractingAudioUsingX>
<ExtractingTextUsingX>Szöveg kiemelése a hangból a következővel {0}...</ExtractingTextUsingX>
<ProgessViaXy>Szöveg kiemelése a(z) {0}-n keresztül, folyamat: {1}%</ProgessViaXy>
<ShowLess>Kevesebb ▲</ShowLess>
<ShowMore>Több ▼</ShowMore>
</AudioToText>
<AutoBreakUnbreakLines>
<TitleAutoBreak>A kiválasztott sorok automatikus kiegyenlítése</TitleAutoBreak>
<TitleUnbreak>Sortörések eltávolítása a kiválasztott sorokból</TitleUnbreak>
@ -587,8 +596,6 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<FixesFoundX>Talált javítások: {0}</FixesFoundX>
<XFixesApplied>Végrehajtott javítások: {0}</XFixesApplied>
<NothingToFixBut>Nincs javítandó, de pár dolgot lehetne javítani - részletekért, tekintse meg a naplót</NothingToFixBut>
<Continue>Folytatás</Continue>
<ContinueAnyway>Mindenképp folytatja?</ContinueAnyway>
<UncheckedFixLowercaseIToUppercaseI>"Az egyedülálló 'i' javítása nagy 'I' betűsre (Angol)" opció kijelöletlen</UncheckedFixLowercaseIToUppercaseI>
<XIsChangedToUppercase>{0} i' módosítva nagybetűsre</XIsChangedToUppercase>
<FixFirstLetterToUppercaseAfterParagraph>A bekezdés utáni első betű átírása nagybetűsre</FixFirstLetterToUppercaseAfterParagraph>
@ -656,7 +663,6 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<Title>Szüksége van szótárakra?</Title>
<DescriptionLine1>A Subtitle Edit helyesírás ellenőrzése a NHunspell modulon alapul,</DescriptionLine1>
<DescriptionLine2>amely az Open Office helyesírás-ellenőrző szótárait használja.</DescriptionLine2>
<GetDictionariesHere>Szótárak letöltése ide:</GetDictionariesHere>
<ChooseLanguageAndClickDownload>Válasszon nyelvet és kattintson a letöltésre</ChooseLanguageAndClickDownload>
<OpenDictionariesFolder>'Szótár' mappa megnyitása</OpenDictionariesFolder>
<Download>Letöltés</Download>
@ -703,15 +709,19 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<RemoveAll>Összes eltávolítása</RemoveAll>
</ImportImages>
<ImportSceneChanges>
<Title>Jelenet változások importálása</Title>
<Title>Jelenetváltozások létrehozása/importálása</Title>
<OpenTextFile>Szövegfájl megnyitása...</OpenTextFile>
<ImportOptions>Importálási lehetőségek</ImportOptions>
<Generate>Jelenetváltozások létrehozása</Generate>
<Import>Jelenetváltozások importálása</Import>
<TextFiles>Szövegfájlok</TextFiles>
<TimeCodes>Időkódok</TimeCodes>
<Frames>Képkockák</Frames>
<Seconds>Másodperc</Seconds>
<Milliseconds>Ezredmásodperc</Milliseconds>
<GetSceneChangesWithFfmpeg>Jelenet változások lekérése az FFmpeg-gel</GetSceneChangesWithFfmpeg>
<GetSceneChangesWithFfmpeg>Jelenetváltások létrehozása az FFmpeg segítségével</GetSceneChangesWithFfmpeg>
<Sensitivity>Érzékenység</Sensitivity>
<SensitivityDescription>Az alacsonyabb érték több jelenetváltozást eredményez</SensitivityDescription>
<NoSceneChangesFound>Nem található jelenetváltozás.</NoSceneChangesFound>
</ImportSceneChanges>
<ImportText>
<Title>Egyszerű szöveg importálása</Title>
@ -1015,7 +1025,7 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<CloseVideo>Videófájl bezárása</CloseVideo>
<SetVideoOffset>Videóeltolás beállítása...</SetVideoOffset>
<SmptTimeMode>SMPTE időzítés (keretkihagyás)</SmptTimeMode>
<ImportSceneChanges>Jelenet változások importálása...</ImportSceneChanges>
<GenerateImportSceneChanges>Jelenetváltozások létrehozása/importálása...</GenerateImportSceneChanges>
<RemoveSceneChanges>Jelenet váltások eltávolítása</RemoveSceneChanges>
<WaveformBatchGenerate>Hullámformák csoportos létrehozása...</WaveformBatchGenerate>
<ShowHideVideo>Videó megjelenítése/elrejtése</ShowHideVideo>
@ -1183,7 +1193,7 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<Auto>Automatikus</Auto>
<PlayFromJustBeforeText>Szöveg előtti rész lejátszása</PlayFromJustBeforeText>
<Pause>Szünet</Pause>
<GoToSubtitlePositionAndPause>Ugrás az al-pozícióra és szüneteltetetés</GoToSubtitlePositionAndPause>
<GoToSubtitlePositionAndPause>Alpozícióra ugrás és szünet</GoToSubtitlePositionAndPause>
<SetStartTime>&amp;Kezdési idő beállítása</SetStartTime>
<SetEndTimeAndGoToNext>Befejezés/következőre ugrás</SetEndTimeAndGoToNext>
<AdjustedViaEndTime>Beállítva a befejezési időn keresztül {0}</AdjustedViaEndTime>
@ -1196,8 +1206,6 @@ Megjegyzés: Ellenőrizze a szabad merevlemez területet.</WaveFileMalformed>
<SecondsForwardShort>&gt;&gt;</SecondsForwardShort>
<VideoPosition>Videó pozíció:</VideoPosition>
<TranslateTip>Tipp: használja a &lt;alt+fel/le nyíl&gt; gombokat az előző/következő feliratra ugráshoz</TranslateTip>
<CreateTip>Tipp: &lt;ctrl+bal/jobb nyíl&gt; használata</CreateTip>
<AdjustTip>Tipp: használja a &lt;alt+fel/le nyíl&gt; gombokat az előző/következő feliratra ugráshoz</AdjustTip>
<BeforeChangingTimeInWaveformX>Mielőtt megváltozott az idő a hullámformában: {0}</BeforeChangingTimeInWaveformX>
<NewTextInsertAtX>Új szöveg beszúrva: {0}</NewTextInsertAtX>
<Center>Középre</Center>
@ -1304,7 +1312,6 @@ Folytatja?</SubtitleAppendPrompt>
<RedoPerformed>Újra végrehajtva</RedoPerformed>
<NothingToUndo>Nincs visszavonható</NothingToUndo>
<InvalidLanguageNameX>Érvénytelen nyelvnév: {0}</InvalidLanguageNameX>
<UnableToChangeLanguage>Nem sikerült megváltoztatni a nyelvet!</UnableToChangeLanguage>
<DoNotDisplayMessageAgain>Ne jelenjen meg többé ez az üzenet</DoNotDisplayMessageAgain>
<NumberOfCorrectedWords>Javított szavak száma: {0}</NumberOfCorrectedWords>
<NumberOfSkippedWords>Kihagyott szavak száma: {0}</NumberOfSkippedWords>
@ -1348,7 +1355,6 @@ Folytatja?</SubtitleAppendPrompt>
<SubtitleImportedFromMatroskaFile>Felirat importálva a Matroska fájlból</SubtitleImportedFromMatroskaFile>
<DropFileXNotAccepted>A(z) '{0}' áthúzott fájl nincs elfogadva - a fájl túl nagy</DropFileXNotAccepted>
<DropOnlyOneFile>Csak egy fájl húzható ide</DropOnlyOneFile>
<BeforeCreateAdjustLines>A sorok létrehozása/igazítása előtti állapotra</BeforeCreateAdjustLines>
<OpenAnsiSubtitle>Felirat megnyitása...</OpenAnsiSubtitle>
<BeforeChangeCasing>A betűmód váltása előtti állapotra</BeforeChangeCasing>
<CasingCompleteMessageNoNames>Módosított betűállású sorok száma: {0}/{1}</CasingCompleteMessageNoNames>
@ -1375,7 +1381,6 @@ Folytatja?</SubtitleAppendPrompt>
<ShowSelectedLinesXSecondsLinesLater>A kijelölt sorok megjelenítése {0:0.0##} másodperccel később</ShowSelectedLinesXSecondsLinesLater>
<ShowSelectionAndForwardXSecondsLinesEarlier>Kiválasztás megjelenítése és előre {0:0.0##} másodperccel korábbra</ShowSelectionAndForwardXSecondsLinesEarlier>
<ShowSelectionAndForwardXSecondsLinesLater>Kiválasztás megjelenítése és előre {0:0.0##} másodperccel</ShowSelectionAndForwardXSecondsLinesLater>
<ShowSelectedLinesEarlierLaterPerformed>A korábbi/későbbi megjelenítés végrehajtva a kijelölt soroknál</ShowSelectedLinesEarlierLaterPerformed>
<DoubleWordsViaRegEx>Dupla szavak regex-en keresztül {0}</DoubleWordsViaRegEx>
<BeforeSortX>Rendezés előtt: {0}</BeforeSortX>
<SortedByX>Rendezés: {0}</SortedByX>
@ -1393,7 +1398,6 @@ Folytatja?</SubtitleAppendPrompt>
<OcrReplacePairXNotAdded>Az OCR csere lista pár '{0} -&gt; {1}' NEM került fel az OCR csere listára</OcrReplacePairXNotAdded>
<XLinesSelected>{0} sor kiválasztva</XLinesSelected>
<UnicodeMusicSymbolsAnsiWarning>A felirat unicode karaktereket tartalmaz. Az ANSI fájlkódolással való mentés esetén, ezek el fognak veszni. Folytatja a mentést?</UnicodeMusicSymbolsAnsiWarning>
<UnicodeCharactersAnsiWarning>A felirat unicode karaktereket tartalmaz. Az ANSI fájlkódolással való mentés esetén, ezek el fognak veszni. Folytatja a mentést?</UnicodeCharactersAnsiWarning>
<NegativeTimeWarning>A felirat negatív időkódokat tartalmaz. Folytatja a mentést?</NegativeTimeWarning>
<BeforeMergeShortLines>A rövid sorok egyesítése előtti állapotra</BeforeMergeShortLines>
<MergedShortLinesX>Összevont sorok száma: {0}</MergedShortLinesX>
@ -1425,10 +1429,6 @@ Folytatja?</SubtitleAppendPrompt>
<UserAndAction>Felhasználó/művelet</UserAndAction>
<NetworkMode>Hálózatkezelési mód</NetworkMode>
<XStartedSessionYAtZ>{0}: {1} munkafolyamat elindítva: {2}</XStartedSessionYAtZ>
<SpellChekingViaWordXLineYOfX>Helyesírás-ellenőrzés {0} szó használata - {1} / {2} sor</SpellChekingViaWordXLineYOfX>
<UnableToStartWord>Nem sikerült elindítani a Microsoft Word programot</UnableToStartWord>
<SpellCheckAbortedXCorrections>A helyesírás-ellenőrzés megszakadt. {0} sor módosítva.</SpellCheckAbortedXCorrections>
<SpellCheckCompletedXCorrections>A helyesírás-ellenőrzés befejeződött. {0} sor módosítva.</SpellCheckCompletedXCorrections>
<OpenOtherSubtitle>Egyéb felirat megnyitása</OpenOtherSubtitle>
<BeforeToggleDialogDashes>A párbeszéd gondolatjelek váltása előtti állapotra</BeforeToggleDialogDashes>
<ExportPlainTextAs>Egyszerű szöveg exportálása másként</ExportPlainTextAs>
@ -1540,6 +1540,8 @@ Ha ezt a fájlt a Subtitle Edit programmal módosította, akkor lehet, hogy megt
<RegEx>Reguláris kifejezés</RegEx>
<UnequalLines>Páratlan számú sorok</UnequalLines>
<EqualLines>Páros számú sorok</EqualLines>
<DurationLessThan>Időtartama kevesebb, mint</DurationLessThan>
<DurationGreaterThan>Időtartama nagyobb, mint</DurationGreaterThan>
</ModifySelection>
<MultipleReplace>
<Title>Többszörös csere</Title>
@ -1709,6 +1711,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<WordLists>Szólisták</WordLists>
<SsaStyle>ASS/SSA stílus</SsaStyle>
<Network>Hálózat</Network>
<Rules>Szabályok</Rules>
<ShowToolBarButtons>Eszköztár gombok megjelenítése</ShowToolBarButtons>
<New>Új</New>
<Open>Megnyitás</Open>
@ -1722,6 +1725,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<SettingsName>Beállítások</SettingsName>
<Help>Súgó</Help>
<UnbreakNoSpace>Szóközök nélküli sortörések eltávolítása (CJK)</UnbreakNoSpace>
<FontInUi>Felület betűtípusa</FontInUi>
<ShowFrameRate>Képarány megjelenítése az eszköztáron</ShowFrameRate>
<DefaultFrameRate>Alapértelmezett képarány</DefaultFrameRate>
<DefaultFileEncoding>Alapértelmezett fájlkódolás</DefaultFileEncoding>
@ -1738,6 +1742,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<SubtitleFontSize>Felirat betűmérete</SubtitleFontSize>
<SubtitleBold>Félkövér</SubtitleBold>
<VideoAutoOpen>A videófájl automatikus megnyitása a felirat megnyitásakor</VideoAutoOpen>
<AllowVolumeBoost>Hangerőfokozás engedélyezése</AllowVolumeBoost>
<SubtitleCenter>Középre</SubtitleCenter>
<SubtitleFontColor>Felirat betűszíne</SubtitleFontColor>
<SubtitleBackgroundColor>Felirat háttérszíne</SubtitleBackgroundColor>
@ -1749,6 +1754,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<StartInSourceView>Indítás forrásnézetben</StartInSourceView>
<RemoveBlankLinesWhenOpening>Üres sorok eltávolítása egy felirat megnyitásakor</RemoveBlankLinesWhenOpening>
<ShowLineBreaksAs>Sortörések megjelenítése listanézetben:</ShowLineBreaksAs>
<SaveAsFileNameFrom>A "Mentés másként ..." a következő fájlnevet használja:</SaveAsFileNameFrom>
<MainListViewDoubleClickAction>A főablak listanézetében egy sorra való dupla kattintáskor:</MainListViewDoubleClickAction>
<MainListViewColumnsInfo>Válassza ki a látható listanézet oszlopait</MainListViewColumnsInfo>
<MainListViewNothing>Nincs művelet</MainListViewNothing>
@ -1759,6 +1765,8 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<MainListViewVideoGoToPositionMinusHalfSecAndPause>Ugrás a videópozícióra - 0.5 mp és szüneteltetés</MainListViewVideoGoToPositionMinusHalfSecAndPause>
<MainListViewVideoGoToPositionMinus1SecAndPlay>Ugrás a videópozícióra - 1 mp és lejátszás</MainListViewVideoGoToPositionMinus1SecAndPlay>
<MainListViewEditTextAndPause>Ugrás a szövegszerkesztő ablakba és szüneteltetés a videópozícióban</MainListViewEditTextAndPause>
<VideoFileName>Videófájl neve</VideoFileName>
<ExistingFileName>Létező fájlnév</ExistingFileName>
<AutoBackup>Auto-mentés</AutoBackup>
<AutoBackupEveryMinute>Percenként</AutoBackupEveryMinute>
<AutoBackupEveryFiveMinutes>5 percenként</AutoBackupEveryFiveMinutes>
@ -1815,6 +1823,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<SpectrogramOneColorGradient>Egy színátmenetes</SpectrogramOneColorGradient>
<SpectrogramClassic>Klasszikus</SpectrogramClassic>
<WaveformUseFFmpeg>FFmpeg használata a wav kiemelésénél</WaveformUseFFmpeg>
<DownloadFFmpeg>FFmpeg letöltése</DownloadFFmpeg>
<WaveformFFmpegPath>FFmpeg helye</WaveformFFmpegPath>
<WaveformBrowseToFFmpeg>FFmpeg keresése</WaveformBrowseToFFmpeg>
<WaveformBrowseToVLC>VLC hordozható keresése</WaveformBrowseToVLC>
@ -1866,10 +1875,12 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<Alt>Alt</Alt>
<Shift>Shift</Shift>
<Key>Billentyű</Key>
<ListView>Listanézet</ListView>
<TextBox>Szövegdoboz</TextBox>
<UpdateShortcut>Frissítés</UpdateShortcut>
<ToggleDockUndockOfVideoControls>Videóvezérlő dokkolás/leválasztás kapcsoló</ToggleDockUndockOfVideoControls>
<CreateSetEndAddNewAndGoToNew>Befejezés beállítása, új hozzáadása és ugrás az újra</CreateSetEndAddNewAndGoToNew>
<AdjustViaEndAutoStart>Igazítás a végpozíción keresztül</AdjustViaEndAutoStart>
<AdjustViaEndAutoStartAndGoToNext>Beállítás a végpozíción keresztül és ugrás a következőre</AdjustViaEndAutoStartAndGoToNext>
<AdjustSetEndTimeAndGoToNext>Befejezés beállítása és ugrás a következőre</AdjustSetEndTimeAndGoToNext>
<AdjustSetStartAutoDurationAndGoToNext>Indítás beállítása, automatikus időtartam és ugrás a következőre</AdjustSetStartAutoDurationAndGoToNext>
@ -1896,6 +1907,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<GoToNextSubtitleAndFocusVideo>Ugrás a következő sorra és videó pozíció beállítása</GoToNextSubtitleAndFocusVideo>
<ToggleFocus>Fókuszváltás a listanézet és felirat szövegdoboz között</ToggleFocus>
<ToggleDialogDashes>Párbeszéd gondolatjel váltó</ToggleDialogDashes>
<ToggleMusicSymbols>Zenei szimbólumok váltása</ToggleMusicSymbols>
<Alignment>Igazítás (kijelölt sorok)</Alignment>
<CopyTextOnly>Csak szöveg másolása a vágólapra (kijelölt sorok)</CopyTextOnly>
<CopyTextOnlyFromOriginalToCurrent>Szöveg másolása az eredetiből a jelenlegibe</CopyTextOnlyFromOriginalToCurrent>
@ -1911,7 +1923,6 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<WaveformPlayNewSelectionEnd>Kijelölés végének lejátszása</WaveformPlayNewSelectionEnd>
<WaveformPlayFirstSelectedSubtitle>Az első kiválasztott felirat lejátszása</WaveformPlayFirstSelectedSubtitle>
<WaveformFocusListView>Listanézet fókusz</WaveformFocusListView>
<WaveformGoToNextSubtitle>Ugrás a következő feliratra (a videó pozícióból)</WaveformGoToNextSubtitle>
<WaveformGoToPreviousSceneChange>Ugrás az előző jelenetváltásra</WaveformGoToPreviousSceneChange>
<WaveformGoToNextSceneChange>Ugrás a következő jelenet váltásra</WaveformGoToNextSceneChange>
<WaveformToggleSceneChange>Jelenet váltás kapcsoló</WaveformToggleSceneChange>
@ -1927,6 +1938,8 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<GoForward1Second>Egy másodperc előre</GoForward1Second>
<GoBack5Seconds>Öt másodperc vissza</GoBack5Seconds>
<GoForward5Seconds>Öt másodperc előre</GoForward5Seconds>
<WaveformGoToPrevSubtitle>Ugrás az előző feliratra (a videó pozícióból)</WaveformGoToPrevSubtitle>
<WaveformGoToNextSubtitle>Ugrás a következő feliratra (a videó pozícióból)</WaveformGoToNextSubtitle>
<TogglePlayPause>Lejátszás/szünet kapcsoló</TogglePlayPause>
<Pause>Szünet</Pause>
<Fullscreen>Teljes képernyős</Fullscreen>
@ -1937,7 +1950,6 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<CustomSearch3>Fordítás, egyéni keresés 3</CustomSearch3>
<CustomSearch4>Fordítás, egyéni keresés 4</CustomSearch4>
<CustomSearch5>Fordítás, egyéni keresés 5</CustomSearch5>
<CustomSearch6>Fordítás, egyéni keresés 6</CustomSearch6>
<SyntaxColoring>Szintaktikai színezés</SyntaxColoring>
<ListViewSyntaxColoring>Listanézet szintaxis színezés</ListViewSyntaxColoring>
<SyntaxColorDurationIfTooSmall>Időtartam színezése, ha túl rövid</SyntaxColorDurationIfTooSmall>
@ -1949,7 +1961,12 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<GoToFirstSelectedLine>Ugrás az első kijelölt sorra</GoToFirstSelectedLine>
<GoToNextEmptyLine>Ugrás a következő üres sorra</GoToNextEmptyLine>
<MergeSelectedLines>Kijelölt sorok egyesítése</MergeSelectedLines>
<MergeSelectedLinesAndAutoBreak>Kijelölt sorok egyesítése és automatikus sortörés</MergeSelectedLinesAndAutoBreak>
<MergeSelectedLinesAndUnbreak>Kijelölt sorok egyesítése és a sortörés megszüntetése</MergeSelectedLinesAndUnbreak>
<MergeSelectedLinesAndUnbreakCjk>Kijelölt sorok egyesítése és a szóközök nélküli sortörés megszüntetése (CJK)</MergeSelectedLinesAndUnbreakCjk>
<MergeSelectedLinesOnlyFirstText>Kijelölt sorok egyesítése, csak az első nem üres szöveg megtartása</MergeSelectedLinesOnlyFirstText>
<MergeSelectedLinesBilingual>Kijelölt sorok kétnyelvű egyesítése</MergeSelectedLinesBilingual>
<SplitSelectedLineBilingual>Kijelölt sorok kétnyelvű felosztása</SplitSelectedLineBilingual>
<ToggleTranslationMode>Fordító módba váltás</ToggleTranslationMode>
<SwitchOriginalAndTranslation>Az eredeti és a fordítás váltása</SwitchOriginalAndTranslation>
<MergeOriginalAndTranslation>Az eredeti és a fordítás egyesítése</MergeOriginalAndTranslation>
@ -1958,6 +1975,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<ShortcutIsAlreadyDefinedX>A gyorsbillentyű már meg van adva: {0}</ShortcutIsAlreadyDefinedX>
<ToggleTranslationAndOriginalInPreviews>Váltás az eredeti és lefordított állomány között a videó/audió előnézetben</ToggleTranslationAndOriginalInPreviews>
<ListViewColumnDelete>Oszlop, szöveg törlése</ListViewColumnDelete>
<ListViewColumnDeleteAndShiftUp>Oszlop, szöveg törlése és felfelé váltás</ListViewColumnDeleteAndShiftUp>
<ListViewColumnInsert>Oszlop, szöveg beszúrása</ListViewColumnInsert>
<ListViewColumnPaste>Oszlop, beillesztés</ListViewColumnPaste>
<ListViewColumnTextUp>Oszlop, szöveg felfelé</ListViewColumnTextUp>
@ -1965,8 +1983,8 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<ListViewFocusWaveform>Hullámforma/spectrogram fókusz</ListViewFocusWaveform>
<ListViewGoToNextError>Ugrás a következő hibára</ListViewGoToNextError>
<ShowBeamer>Teljes képernyős projektor felirat indítás</ShowBeamer>
<MainTextBoxMoveLastWordDown>Utolsó szó áthelyezése a következő felirat sorba</MainTextBoxMoveLastWordDown>
<MainTextBoxMoveFirstWordFromNextUp>Az első szó áthelyezése felfelé a következő felirat sorból</MainTextBoxMoveFirstWordFromNextUp>
<MainTextBoxMoveLastWordDown>Utolsó szó áthelyezése a következő feliratra</MainTextBoxMoveLastWordDown>
<MainTextBoxMoveFirstWordFromNextUp>Első szó lekérése a következő feliratból</MainTextBoxMoveFirstWordFromNextUp>
<MainTextBoxMoveFirstWordUpCurrent>Első szó mozgatása a következő sorból felfelé (aktuális felirat)</MainTextBoxMoveFirstWordUpCurrent>
<MainTextBoxMoveLastWordDownCurrent>Utolsó szó mozgatása az első sorból lefelé (aktuális felirat)</MainTextBoxMoveLastWordDownCurrent>
<MainTextBoxSelectionToLower>Kijelölés kisbetűsre</MainTextBoxSelectionToLower>
@ -1982,6 +2000,9 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<HowToSignUp>Regisztráció módja</HowToSignUp>
<GoogleTranslateUrl>Google fordító url</GoogleTranslateUrl>
<MicrosoftTranslateApiKey>Kulcs</MicrosoftTranslateApiKey>
<FontNote>Megjegyzés: Ezek a betűtípus beállítások csak a Subtitle Edit felhasználói felületére vonatkoznak.
A feliratozáshoz használt betűtípust általában a videólejátszóban választjuk ki, de ezt akkor is megtehetjük, ha olyan feliratformátumot használ, amely beépített betűinformációkkal rendelkezik, például az
"Advanced Sub Station Alpha" vagy a képalapú formátumba való exportálás.</FontNote>
</Settings>
<SettingsMpv>
<Title>Mpv beállítások</Title>
@ -1989,6 +2010,11 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<DownloadMpvFailed>Nem sikerült letölteni az mpv könyvtárat - próbálkozzon később!</DownloadMpvFailed>
<DownloadMpvOk>Az mpv könyvtár letöltésre került, és készen áll a használatra.</DownloadMpvOk>
</SettingsMpv>
<SettingsFfmpeg>
<Title>FFmpeg letöltése</Title>
<XDownloadFailed>A(z) {0} letöltése sikertelen volt - Kérjük, próbálkozzon később.</XDownloadFailed>
<XDownloadOk>A(z) {0} letöltődött és készen áll a használatra.</XDownloadOk>
</SettingsFfmpeg>
<SetVideoOffset>
<Title>Videó eltolás beállítása</Title>
<Description>Videó eltolás beállítása (a feliratoknak nem kell követniük a valós videó időt, pl. +10 óra)</Description>
@ -2105,17 +2131,17 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<MostUsedLines>Leggyakrabban használt sorok</MostUsedLines>
<MostUsedWords>Leggyakrabban használt szavak</MostUsedWords>
<NothingFound>Nincs találat</NothingFound>
<NumberOfLinesX>A felirat sorainak száma: {0:#,###}</NumberOfLinesX>
<NumberOfLinesX>Feliratsorok száma: {0:#,###}</NumberOfLinesX>
<LengthInFormatXinCharactersY>{0} karakterek száma: {1:#,###,##0}</LengthInFormatXinCharactersY>
<NumberOfCharactersInTextOnly>Csak a szöveg karaktereinek száma: {0:#,###,##0}</NumberOfCharactersInTextOnly>
<TotalDuration>A feliratok teljes időtartama: {0}</TotalDuration>
<TotalDuration>Összes felirat teljes időtartama: {0:#,##0}</TotalDuration>
<TotalCharsPerSecond>Összes karakter/másodperc: {0:0.0} másodperc</TotalCharsPerSecond>
<TotalWords>Összes szó a feliratban: {0}</TotalWords>
<NumberOfItalicTags>Dőlt betűs címkék száma: {0}</NumberOfItalicTags>
<NumberOfBoldTags>Félkövér címkék száma: {0}</NumberOfBoldTags>
<NumberOfUnderlineTags>Aláhúzási címkék száma: {0}</NumberOfUnderlineTags>
<NumberOfFontTags>Betűcímkék száma: {0}</NumberOfFontTags>
<NumberOfAlignmentTags>Igazítási címkék száma: {0}</NumberOfAlignmentTags>
<TotalWords>Összes szó a feliratban: {0:#,##0}</TotalWords>
<NumberOfItalicTags>Dőlt címkék száma: {0:#,##0}</NumberOfItalicTags>
<NumberOfBoldTags>Félkövér címkék száma: {0:#,##0}</NumberOfBoldTags>
<NumberOfUnderlineTags>Aláhúzási címkék száma: {0:#,##0}</NumberOfUnderlineTags>
<NumberOfFontTags>Betűkészlet címkék száma: {0:#,##0}</NumberOfFontTags>
<NumberOfAlignmentTags>Igazítási címkék száma: {0:#,##0}</NumberOfAlignmentTags>
<LineLengthMinimum>Felirat hossza - minimum: {0}</LineLengthMinimum>
<LineLengthMaximum>Felirat hossza - maximum: {0}</LineLengthMaximum>
<LineLengthAverage>Felirat hossza - átlagos: {0}</LineLengthAverage>
@ -2217,6 +2243,7 @@ szerkesztheti ugyanazt a feliratfájlt</Information>
<UnknownSubtitle>
<Title>Ismeretlen felirat típus</Title>
<Message>Ha Ön ezt javítva szeretné visszakapni, kérjük, küldjön egy e-mail-t a mailto:niksedk@gmail.com címre, melyhez csatolja a felirat másolatát.</Message>
<ImportAsPlainText>Importálás egyszerű szövegként...</ImportAsPlainText>
</UnknownSubtitle>
<VisualSync>
<Title>Vizuális szinkronizálás</Title>
@ -2294,7 +2321,6 @@ Megtartja a módosításokat?</KeepChangesMessage>
<SaveAllSubtitleImagesAsBdnXml>Az összes kép mentése (png/bdn xml)...</SaveAllSubtitleImagesAsBdnXml>
<SaveAllSubtitleImagesWithHtml>Az összes kép mentése HTML index-el...</SaveAllSubtitleImagesWithHtml>
<XImagesSavedInY>{0} kép mentve: {1}</XImagesSavedInY>
<TryModiForUnknownWords>Próbálja az Microsoft MODI OCR módot az ismeretlen szavaknál</TryModiForUnknownWords>
<DictionaryX>Szótár: {0}</DictionaryX>
<RightToLeft>Jobbról balra</RightToLeft>
<ShowOnlyForcedSubtitles>Csak a kényszerített feliratok megjelenítése</ShowOnlyForcedSubtitles>

View File

@ -110,6 +110,12 @@
<Compile Include="Forms\CheckForUpdates.Designer.cs">
<DependentUpon>CheckForUpdates.cs</DependentUpon>
</Compile>
<Compile Include="Forms\ChooseFontName.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ChooseFontName.Designer.cs">
<DependentUpon>ChooseFontName.cs</DependentUpon>
</Compile>
<Compile Include="Forms\ColorChooser.cs">
<SubType>Form</SubType>
</Compile>
@ -152,6 +158,12 @@
<Compile Include="Forms\DownloadFfmpeg.Designer.cs">
<DependentUpon>DownloadFfmpeg.cs</DependentUpon>
</Compile>
<Compile Include="Forms\DvdStudioProProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\DvdStudioProProperties.Designer.cs">
<DependentUpon>DvdStudioProProperties.cs</DependentUpon>
</Compile>
<Compile Include="Forms\EbuLanguageCode.cs">
<SubType>Form</SubType>
</Compile>
@ -1013,6 +1025,9 @@
<EmbeddedResource Include="Forms\CheckForUpdates.resx">
<DependentUpon>CheckForUpdates.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ChooseFontName.resx">
<DependentUpon>ChooseFontName.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ColorChooser.resx">
<DependentUpon>ColorChooser.cs</DependentUpon>
</EmbeddedResource>
@ -1035,6 +1050,9 @@
<EmbeddedResource Include="Forms\DownloadFfmpeg.resx">
<DependentUpon>DownloadFfmpeg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DvdStudioProProperties.resx">
<DependentUpon>DvdStudioProProperties.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EbuLanguageCode.resx">
<DependentUpon>EbuLanguageCode.cs</DependentUpon>
</EmbeddedResource>