mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-22 03:02:35 +01:00
Improve PAC format a bit for Thai - thx Ingo :)
This commit is contained in:
parent
745c1e79f8
commit
9588a75ea3
@ -891,9 +891,15 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
{ 130, new SpecialCharacter("โ")}, // 0x82
|
||||
{ 131, new SpecialCharacter("ใ")}, // 0x83
|
||||
{ 132, new SpecialCharacter("ไ")}, // 0x84
|
||||
{ 133, new SpecialCharacter("ๅ")}, // 0x85
|
||||
{ 134, new SpecialCharacter("ๆ")}, // 0x86
|
||||
|
||||
{ 135, new SpecialCharacter("็")}, // 0x87
|
||||
{ 136, new SpecialCharacter("่")}, // 0x88
|
||||
{ 137, new SpecialCharacter("้")}, // 0x89
|
||||
{ 138, new SpecialCharacter("๊")}, // 0x8A
|
||||
{ 139, new SpecialCharacter("๋")}, // 0x8B
|
||||
{ 140, new SpecialCharacter("์")}, // 0x8C
|
||||
{ 141, new SpecialCharacter("ํ")}, // 0x8D
|
||||
{ 142, new SpecialCharacter("๎")}, // 0x8E
|
||||
|
||||
@ -910,7 +916,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
{ 153, new SpecialCharacter("๙")}, // 0x99
|
||||
{ 154, new SpecialCharacter("๚")}, // 0x9a
|
||||
{ 155, new SpecialCharacter("๛")}, // 0x9b
|
||||
|
||||
{ 160, new SpecialCharacter(" ")}, // 0xa0
|
||||
{ 161, new SpecialCharacter("ก")}, // 0xa1
|
||||
{ 162, new SpecialCharacter("ข")}, // 0xa2
|
||||
{ 163, new SpecialCharacter("ฃ")}, // 0xa3
|
||||
@ -965,29 +971,12 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
{ 212, new SpecialCharacter("ิ")}, // 0xd4
|
||||
{ 213, new SpecialCharacter("ี")}, // 0xd5
|
||||
{ 214, new SpecialCharacter("ึ")}, // 0xd6
|
||||
{ 215, new SpecialCharacter("ื")}, // 0xd7
|
||||
{ 216, new SpecialCharacter("ุ")}, // 0xd8
|
||||
{ 217, new SpecialCharacter("ู")}, // 0xd9
|
||||
{ 218, new SpecialCharacter("ฺ")}, // 0xda
|
||||
{ 223, new SpecialCharacter("฿")}, // 0xdb
|
||||
|
||||
{ 0xA688, new SpecialCharacter("ฆ่")},
|
||||
{ 0xAA89, new SpecialCharacter("ช้")},
|
||||
{ 0xB487, new SpecialCharacter("ด็")},
|
||||
{ 0xB589, new SpecialCharacter("ต้")},
|
||||
{ 0xB6D9, new SpecialCharacter("ถู")},
|
||||
{ 0xB88C, new SpecialCharacter("ธ์")},
|
||||
{ 0xB9D1, new SpecialCharacter("นั")},
|
||||
{ 0xC188, new SpecialCharacter("ม่")},
|
||||
{ 0xC288, new SpecialCharacter("ย่")},
|
||||
{ 0xC2D8, new SpecialCharacter("ยุ")},
|
||||
{ 0xC38C, new SpecialCharacter("ร์")},
|
||||
{ 0xC3D9, new SpecialCharacter("รู")},
|
||||
{ 0xC588, new SpecialCharacter("ล่")},
|
||||
{ 0xC788, new SpecialCharacter("ว่")},
|
||||
{ 0xC78C, new SpecialCharacter("ว์")},
|
||||
{ 0xCAD8, new SpecialCharacter("สุ")},
|
||||
{ 0xCB89, new SpecialCharacter("ห้")},
|
||||
|
||||
{ 0xBED788, new SpecialCharacter("พื่")},
|
||||
{ 0xC2D988, new SpecialCharacter("ยู่")},
|
||||
{ 0xe3, new SpecialCharacter("ใ")},
|
||||
};
|
||||
|
||||
|
||||
@ -1402,7 +1391,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
else if (CodePage == CodePageThai)
|
||||
{
|
||||
textBuffer = GetThaiBytes(text, alignment);
|
||||
// textBuffer = encoding.GetBytes(text.Replace('ต', '€'));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1522,46 +1510,46 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
|
||||
try
|
||||
{
|
||||
var fi = new FileInfo(fileName);
|
||||
if (fi.Length > 65 && fi.Length < 1024000) // not too small or too big
|
||||
{
|
||||
byte[] buffer = FileUtil.ReadAllBytesShared(fileName);
|
||||
|
||||
if (buffer[00] == 1 && // These bytes seems to be PAC files... TODO: Verify!
|
||||
buffer[01] == 0 &&
|
||||
buffer[02] == 0 &&
|
||||
buffer[03] == 0 &&
|
||||
buffer[04] == 0 &&
|
||||
buffer[05] == 0 &&
|
||||
buffer[06] == 0 &&
|
||||
buffer[07] == 0 &&
|
||||
buffer[08] == 0 &&
|
||||
buffer[09] == 0 &&
|
||||
buffer[10] == 0 &&
|
||||
buffer[11] == 0 &&
|
||||
buffer[12] == 0 &&
|
||||
buffer[13] == 0 &&
|
||||
buffer[14] == 0 &&
|
||||
buffer[15] == 0 &&
|
||||
buffer[16] == 0 &&
|
||||
buffer[17] == 0 &&
|
||||
buffer[18] == 0 &&
|
||||
buffer[19] == 0 &&
|
||||
buffer[20] == 0 &&
|
||||
//buffer[21] < 10 && // start from number
|
||||
//buffer[22] == 0 &&
|
||||
//(buffer[23] >= 0x60 && buffer[23] <= 0x70) &&
|
||||
fileName.EndsWith(Extension, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var fi = new FileInfo(fileName);
|
||||
if (fi.Length > 65 && fi.Length < 1024000) // not too small or too big
|
||||
{
|
||||
byte[] buffer = FileUtil.ReadAllBytesShared(fileName);
|
||||
|
||||
if (buffer[00] == 1 && // These bytes seems to be PAC files... TODO: Verify!
|
||||
buffer[01] == 0 &&
|
||||
buffer[02] == 0 &&
|
||||
buffer[03] == 0 &&
|
||||
buffer[04] == 0 &&
|
||||
buffer[05] == 0 &&
|
||||
buffer[06] == 0 &&
|
||||
buffer[07] == 0 &&
|
||||
buffer[08] == 0 &&
|
||||
buffer[09] == 0 &&
|
||||
buffer[10] == 0 &&
|
||||
buffer[11] == 0 &&
|
||||
buffer[12] == 0 &&
|
||||
buffer[13] == 0 &&
|
||||
buffer[14] == 0 &&
|
||||
buffer[15] == 0 &&
|
||||
buffer[16] == 0 &&
|
||||
buffer[17] == 0 &&
|
||||
buffer[18] == 0 &&
|
||||
buffer[19] == 0 &&
|
||||
buffer[20] == 0 &&
|
||||
//buffer[21] < 10 && // start from number
|
||||
//buffer[22] == 0 &&
|
||||
//(buffer[23] >= 0x60 && buffer[23] <= 0x70) &&
|
||||
fileName.EndsWith(Extension, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1616,10 +1604,10 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
firstIsSecondary = secondary;
|
||||
for (var j = i + 2; j < buffer.Length - 6 && (buffer[j] != 0x00 || buffer[j - 1] == 0xFE || buffer[j - 2] == 0xFE); j++)
|
||||
{
|
||||
if (buffer[j] == 0xFE)
|
||||
{
|
||||
secondary = (buffer[j + 1] & 0x08) != 0;
|
||||
}
|
||||
if (buffer[j] == 0xFE)
|
||||
{
|
||||
secondary = (buffer[j + 1] & 0x08) != 0;
|
||||
}
|
||||
|
||||
var lineEnd = Array.FindIndex(buffer, j, b => b == 0xfe || b == 0x00);
|
||||
if (Encoding.ASCII.GetString(buffer, j, 6).ToUpperInvariant() == "STORY:")
|
||||
@ -1926,7 +1914,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
else if (CodePage == CodePageThai)
|
||||
{
|
||||
sb.Append(GetThaiString(buffer, ref index));
|
||||
//sb.Append(GetEncoding(CodePage).GetString(buffer, index, 1).Replace("€", "ต"));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2023,10 +2010,10 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fix italic tags, lines starting with ">" - whole line is italic, words between <> is italic
|
||||
/// </summary>
|
||||
private static string FixItalics(string input)
|
||||
/// <summary>
|
||||
/// Fix italic tags, lines starting with ">" - whole line is italic, words between <> is italic
|
||||
/// </summary>
|
||||
private static string FixItalics(string input)
|
||||
{
|
||||
var pre = string.Empty;
|
||||
var text = input;
|
||||
|
Loading…
Reference in New Issue
Block a user