Merge pull request #1 from SubtitleEdit/master

Update from origin
This commit is contained in:
Maksym Kobieliev 2015-08-19 22:55:06 +03:00
commit fdd5aa3cf3
8 changed files with 2232 additions and 57 deletions

View File

@ -501,6 +501,21 @@ tr.tsk_ResetSettings=Reset Subtitle Edit's settings
tr.types_custom=Custom installation
tr.types_default=Default installation
; Ukrainian
uk.comp_translations=Файли локалізації
uk.msg_AskToDownNET=Subtitle Edit потребує для своєї роботи .NET Framework 4.0. Будь ласка, звантажте та встановіть .NET Framework і запустіть інсталяцію ще раз.%n%nБажаєте звантажити .NET Framework 4.0 зараз?
uk.msg_DeleteSettings=Бажаєте також видалити налаштування Subtitle Edit та будь-які зміни, які ви зробили у словниках?%n%nЯкщо ви плануєте перевстановлювати Subtitle Edit, вам не потрібно їх видаляти.
uk.msg_OptimizingPerformance=Оптимізація швидкодії...
uk.run_VisitWebsite=Відвідати веб-сторінку Subtitle Edit
uk.sm_com_Changelog=Журнал версій Subtitle Edit
uk.tsk_AllUsers=Для усіх користувачів
uk.tsk_CurrentUser=Тільки для поточного користувача
uk.tsk_Other=Інше:
uk.tsk_ResetDictionaries=Скинути словники та видалити усі користувацькі імена
uk.tsk_ResetSettings=Скинути налаштування Subtitle Edit
uk.types_custom=Налаштовуване встановлення
uk.types_default=Типове встановлення
; Vietnamese
vi.comp_translations=Translations
vi.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 4.0. Please download and install the .NET Framework and run setup again.%n%nDo you want to download the .NET Framework 4.0 now?

View File

@ -104,48 +104,47 @@ DisableProgramGroupPage=auto
CloseApplications=true
SetupMutex='subtitle_edit_setup_mutex'
[Languages]
Name: en; MessagesFile: compiler:Default.isl
Name: "en"; MessagesFile: "compiler:Default.isl"
#ifdef localize
Name: ar; MessagesFile: Languages\Arabic.isl
Name: bg; MessagesFile: Languages\Bulgarian.isl
Name: ca; MessagesFile: compiler:Languages\Catalan.isl
Name: cs; MessagesFile: compiler:Languages\Czech.isl
Name: da; MessagesFile: compiler:Languages\Danish.isl
Name: de; MessagesFile: compiler:Languages\German.isl
Name: el; MessagesFile: compiler:Languages\Greek.isl
Name: es; MessagesFile: compiler:Languages\Spanish.isl
Name: eu; MessagesFile: Languages\Basque.isl
Name: fa; MessagesFile: Languages\Farsi.isl
Name: fi; MessagesFile: compiler:Languages\Finnish.isl
Name: fr; MessagesFile: compiler:Languages\French.isl
Name: hr; MessagesFile: Languages\Croatian.isl
Name: hu; MessagesFile: compiler:Languages\Hungarian.isl
Name: it; MessagesFile: compiler:Languages\Italian.isl
Name: ja; MessagesFile: compiler:Languages\Japanese.isl
Name: ko; MessagesFile: Languages\Korean.isl
Name: nl; MessagesFile: compiler:Languages\Dutch.isl
Name: pl; MessagesFile: compiler:Languages\Polish.isl
Name: pt; MessagesFile: compiler:Languages\Portuguese.isl
Name: ptBR; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
Name: ro; MessagesFile: Languages\Romanian.isl
Name: ru; MessagesFile: compiler:Languages\Russian.isl
Name: sl; MessagesFile: compiler:Languages\Slovenian.isl
Name: srC; MessagesFile: compiler:Languages\SerbianCyrillic.isl
Name: srL; MessagesFile: compiler:Languages\SerbianLatin.isl
Name: sv; MessagesFile: Languages\Swedish.isl
Name: th; MessagesFile: Languages\Thai.isl
Name: tr; MessagesFile: compiler:Languages\Turkish.isl
Name: vi; MessagesFile: Languages\Vietnamese.isl
Name: zh; MessagesFile: Languages\ChineseSimplified.isl
Name: zhTW; MessagesFile: Languages\ChineseTraditional.isl
Name: "ar"; MessagesFile: "Languages\Arabic.isl"
Name: "bg"; MessagesFile: "Languages\Bulgarian.isl"
Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl"
Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "da"; MessagesFile: "compiler:Languages\Danish.isl"
Name: "de"; MessagesFile: "compiler:Languages\German.isl"
Name: "el"; MessagesFile: "compiler:Languages\Greek.isl"
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"
Name: "eu"; MessagesFile: "Languages\Basque.isl"
Name: "fa"; MessagesFile: "Languages\Farsi.isl"
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
Name: "hr"; MessagesFile: "Languages\Croatian.isl"
Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl"
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
Name: "ja"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "ko"; MessagesFile: "Languages\Korean.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl"
Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "ptBR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: "ro"; MessagesFile: "Languages\Romanian.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "sl"; MessagesFile: "compiler:Languages\Slovenian.isl"
Name: "srC"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl"
Name: "srL"; MessagesFile: "compiler:Languages\SerbianLatin.isl"
Name: "sv"; MessagesFile: "Languages\Swedish.isl"
Name: "th"; MessagesFile: "Languages\Thai.isl"
Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "uk"; MessagesFile: "compiler:Languages\Ukrainian.isl"
Name: "vi"; MessagesFile: "Languages\Vietnamese.isl"
Name: "zh"; MessagesFile: "Languages\ChineseSimplified.isl"
Name: "zhTW"; MessagesFile: "Languages\ChineseTraditional.isl"
#endif
; Include the installer's custom messages
#include "Custom_Messages.iss"
[Messages]
BeveledLabel=Subtitle Edit {#app_ver} by Nikse
SetupAppTitle=Setup - Subtitle Edit
@ -440,6 +439,8 @@ begin
DelTree(ExpandConstant('{userappdata}\Subtitle Edit\Dictionaries\*.dic'), False, True, False);
DelTree(ExpandConstant('{userappdata}\Subtitle Edit\Dictionaries\*.aff'), False, True, False);
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\Dictionaries'));
DelTree(ExpandConstant('{userappdata}\Subtitle Edit\Plugins\*.*'), False, True, False);
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\Plugins'));
end;
@ -502,6 +503,7 @@ begin
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\VobSub\English'));
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\VobSub'));
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\WaveForms'));
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\Plugins'));
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit'));
end;

View File

@ -234,6 +234,7 @@
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "DurationsBridgeGaps";
this.Shown += new System.EventHandler(this.DurationsBridgeGaps_Shown);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.DurationsBridgeGaps_KeyDown);
this.groupBoxLinesFound.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxMs)).EndInit();

View File

@ -168,5 +168,10 @@ namespace Nikse.SubtitleEdit.Forms
DialogResult = DialogResult.Cancel;
}
private void DurationsBridgeGaps_Shown(object sender, EventArgs e)
{
SubtitleListview1.Focus();
}
}
}

2118
src/Languages/uk-UA.xml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -195,10 +195,9 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
{
using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
int russianCount = 0;
foreach (Paragraph p in subtitle.Paragraphs)
{
int russianCount = 0;
if (p.Text.Contains(new[] { '的', '是', '啊', '吧', '好', '吧', '亲', '爱', '的', '早', '上' }))
{
_languageIdLine1 = LanguageIdChineseSimplified;

View File

@ -1189,11 +1189,22 @@ namespace Nikse.SubtitleEdit.Logic
public static readonly string[] AutoDetectWordsRomanian = { "Какво", "тук", "може", "Как", "Ваше", "какво" };
public static readonly string[] AutoDetectWordsArabic = { "Какво", "тук", "може", "Как", "Ваше", "какво" };
public static readonly string[] AutoDetectWordsHebrew = { "אתה", "אולי", "הוא", "בסדר", "יודע", "טוב" };
public static readonly string[] AutoDetectWordsSerbian = { "sam", "što", "öto", "äto", "ovo", "vas", "nije", "Šta", "ovde", "za" };
public static readonly string[] AutoDetectWordsVietnamese = { "không", "tôi", "anh", "đó", "Tôi", "ông" };
public static readonly string[] AutoDetectWordsHungarian = { "hogy", "lesz", "tudom", "vagy", "mondtam", "még" };
public static readonly string[] AutoDetectWordsCroatian = { "sam", "öto", "äto", "ovo", "vas", "što" };
public static readonly string[] AutoDetectWordsTurkish = { "için", "Tamam", "Hayır", "benim", "daha", "deðil", "önce", "lazým", "benim", "çalýþýyor", "burada", "efendim" };
public static readonly string[] AutoDetectWordsCroatianAndSerbian = { "sam", "ali", "nije", "samo", "ovo", "kako", "dobro", "sve", "tako", "će", "mogu", "ću", "zašto", "nešto", "za" };
public static readonly string[] AutoDetectWordsCroatian = { "što", "ovdje", "gdje", "kamo", "tko", "prije", "uvijek", "vrijeme", "vidjeti", "netko",
"vidio", "nitko", "bok", "lijepo", "oprosti", "htio", "mjesto", "oprostite", "čovjek", "dolje",
"čovječe", "dvije", "dijete", "dio", "poslije", "događa", "vjerovati", "vjerojatno", "vjerujem", "točno",
"razumijem", "vidjela", "cijeli", "svijet", "obitelj", "volio", "sretan", "dovraga", "svijetu", "htjela",
"vidjeli", "negdje", "želio", "ponovno", "djevojka", "umrijeti", "čovjeka", "mjesta", "djeca", "osjećam",
"uopće", "djecu", "naprijed", "obitelji", "doista", "mjestu", "lijepa", "također", "riječ", "tijelo" };
public static readonly string[] AutoDetectWordsSerbian = { "šta", "ovde", "gde", "ko", "pre", "uvek", "vreme", "videti", "neko",
"video", "niko", "ćao", "lepo", "izvini", "hteo", "mesto", "izvinite", "čovek", "dole",
"čoveče", "dve", "dete", "deo", "posle", "dešava", "verovati", "verovatno", "verujem", "tačno",
"razumem", "videla", "ceo", "svet", "porodica", "voleo", "srećan", "dođavola", "svetu", "htela",
"videli", "negde", "želeo", "ponovo", "devojka", "umreti", "čoveka", "mesta", "deca", "osećam",
"uopšte", "decu", "napred", "porodicu", "zaista", "mestu", "lepa", "takođe", "reč", "telo" };
public static string AutoDetectGoogleLanguage(string text, int bestCount)
{
@ -1301,15 +1312,11 @@ namespace Nikse.SubtitleEdit.Logic
if (count > bestCount)
return "he"; // Hebrew
count = GetCount(text, AutoDetectWordsSerbian);
count = GetCount(text, AutoDetectWordsCroatianAndSerbian);
if (count > bestCount)
{
int croatianCount = GetCount(text, "sigurnošću", "ubojstvo", "službeni", "nedjelja", "izražava", "dogodilo", "svjetlo", "sigurno", "shvaćam",
"obitelj", "vijest", "svijet", "sjećam", "lijepa", "dijete", "cijeli", "bijeli", "smije", "smije", "ured",
"otok", "opći", "križ", "htio", "gdje", "auto", "sat", "kći");
int serbianCount = GetCount(text, "ispoljava", "porodica", "ponaosob", "bukvalno", "ubistvo", "ubediti", "suštini", "komitet", "dejstvo",
"uopšte", "štampa", "ostrvo", "naučni", "kiriju", "kćerke", "nauka", "ivica", "čovek", "lepa", "krst",
"kola", "hteo", "drug", "dete", "celi", "sme", "sem", "gde", "čas");
int croatianCount = GetCount(text, AutoDetectWordsCroatian);
int serbianCount = GetCount(text, AutoDetectWordsSerbian);
if (croatianCount > serbianCount)
return "hr"; // Croatian
@ -1408,12 +1415,18 @@ namespace Nikse.SubtitleEdit.Logic
bool containsEnGb = false;
bool containsEnUs = false;
bool containsHrHr = false;
bool containsSrLatn = false;
foreach (string name in dictionaryNames)
{
if (name.Contains("[en_GB]"))
containsEnGb = true;
if (name.Contains("[en_US]"))
containsEnUs = true;
if (name.Contains("[hr_HR]"))
containsHrHr = true;
if (name.Contains("[sr-Latn]"))
containsSrLatn = true;
}
foreach (string name in dictionaryNames)
@ -1453,33 +1466,27 @@ namespace Nikse.SubtitleEdit.Logic
count = GetCount(text, AutoDetectWordsEnglish);
if (count > bestCount)
{
languageName = shortName;
if (containsEnGb)
{
int usCount = GetCount(text, "color", "flavor", "honor", "humor", "neighbor", "honor");
int gbCount = GetCount(text, "colour", "flavour", "honour", "humour", "neighbour", "honour");
if (usCount >= gbCount)
languageName = "en_US";
else
if (gbCount > usCount)
languageName = "en_GB";
}
else
{
languageName = shortName;
}
}
break;
case "en_GB":
count = GetCount(text, "we", "are", "and", "you", "your", "what");
if (count > bestCount)
{
languageName = shortName;
if (containsEnUs)
{
int usCount = GetCount(text, "color", "flavor", "honor", "humor", "neighbor", "honor");
int gbCount = GetCount(text, "colour", "flavour", "honour", "humour", "neighbour", "honour");
if (usCount >= gbCount)
if (gbCount < usCount)
languageName = "en_US";
else
languageName = "en_GB";
}
}
break;
@ -1559,9 +1566,32 @@ namespace Nikse.SubtitleEdit.Logic
}
break;
case "hr_HR": // Croatian
count = GetCount(text, AutoDetectWordsCroatian);
count = GetCount(text, AutoDetectWordsCroatianAndSerbian);
if (count > bestCount)
{
languageName = shortName;
if (containsSrLatn)
{
int croatianCount = GetCount(text, AutoDetectWordsCroatian);
int serbianCount = GetCount(text, AutoDetectWordsSerbian);
if (serbianCount > croatianCount)
languageName = "sr-Latn";
}
}
break;
case "sr-Latn": // Serbian (Latin)
count = GetCount(text, AutoDetectWordsCroatianAndSerbian);
if (count > bestCount)
{
languageName = shortName;
if (containsHrHr)
{
int croatianCount = GetCount(text, AutoDetectWordsCroatian);
int serbianCount = GetCount(text, AutoDetectWordsSerbian);
if (serbianCount < croatianCount)
languageName = "hr_HR";
}
}
break;
case "pt_PT": // Portuguese
count = GetCount(text, AutoDetectWordsPortuguese);

View File

@ -681,6 +681,9 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
private void MouseTimerTick(object sender, EventArgs e)
{
if (_mouseTimer == null)
return;
_mouseTimer.Stop();
if (_parentForm != null && _ownerControl != null && _ownerControl.Visible && _parentForm.ContainsFocus && IsLeftMouseButtonDown())
{
@ -700,6 +703,8 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
}
}
}
if (_mouseTimer == null)
return;
_mouseTimer.Start();
}