mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
More work on #6058
This commit is contained in:
parent
ac7a5aa655
commit
d4df6f1f8d
@ -2205,7 +2205,7 @@ can edit in same subtitle file (collaboration)</Information>
|
||||
<AutoBackupEveryFiveMinutes>Every 5th minute</AutoBackupEveryFiveMinutes>
|
||||
<AutoBackupEveryFifteenMinutes>Every 15th minute</AutoBackupEveryFifteenMinutes>
|
||||
<AutoBackupDeleteAfter>Delete after</AutoBackupDeleteAfter>
|
||||
<TranslationAutoSuffix>Translation auto suffix</TranslationAutoSuffix>
|
||||
<TranslationAutoSuffix>Translation file name auto suffix</TranslationAutoSuffix>
|
||||
<AutoBackupDeleteAfterOneMonth>1 month</AutoBackupDeleteAfterOneMonth>
|
||||
<AutoBackupDeleteAfterXMonths>{0} months</AutoBackupDeleteAfterXMonths>
|
||||
<CheckForUpdates>Check for updates</CheckForUpdates>
|
||||
|
@ -4812,7 +4812,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
|
||||
var suffix = string.Empty;
|
||||
if (_subtitleOriginal != null && !string.IsNullOrEmpty(Configuration.Settings.General.TranslationAutoSuffixDefault))
|
||||
if (_subtitleOriginal != null && SubtitleListview1.IsOriginalTextColumnVisible && !string.IsNullOrEmpty(Configuration.Settings.General.TranslationAutoSuffixDefault))
|
||||
{
|
||||
if (Configuration.Settings.General.TranslationAutoSuffixDefault.StartsWith('<'))
|
||||
{
|
||||
@ -4840,7 +4840,14 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
else if (!string.IsNullOrWhiteSpace(_subtitleOriginalFileName) && Configuration.Settings.General.SaveAsUseFileNameFrom.Equals("file", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
saveFileDialog1.FileName = Utilities.GetFileNameWithoutExtension(_subtitleOriginalFileName) + suffix;
|
||||
var originalLanguage = LanguageAutoDetect.AutoDetectGoogleLanguage(_subtitleOriginal);
|
||||
var fileNameNoExt = Utilities.GetFileNameWithoutExtension(_subtitleOriginalFileName);
|
||||
if (fileNameNoExt.EndsWith("." + originalLanguage, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
fileNameNoExt = fileNameNoExt.Substring(0, fileNameNoExt.Length - ("." + originalLanguage).Length);
|
||||
}
|
||||
|
||||
saveFileDialog1.FileName = fileNameNoExt + suffix;
|
||||
saveFileDialog1.InitialDirectory = Path.GetDirectoryName(_subtitleOriginalFileName);
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(_videoFileName) && Configuration.Settings.General.SaveAsUseFileNameFrom.Equals("video", StringComparison.OrdinalIgnoreCase))
|
||||
@ -4866,6 +4873,18 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
saveFileDialog1.FileName = Utilities.GetFileNameWithoutExtension(_videoFileName);
|
||||
saveFileDialog1.InitialDirectory = Path.GetDirectoryName(_videoFileName);
|
||||
}
|
||||
else if (!string.IsNullOrWhiteSpace(_subtitleOriginalFileName))
|
||||
{
|
||||
var originalLanguage = LanguageAutoDetect.AutoDetectGoogleLanguage(_subtitleOriginal);
|
||||
var fileNameNoExt = Utilities.GetFileNameWithoutExtension(_subtitleOriginalFileName);
|
||||
if (fileNameNoExt.EndsWith("." + originalLanguage, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
fileNameNoExt = fileNameNoExt.Substring(0, fileNameNoExt.Length - ("." + originalLanguage).Length);
|
||||
}
|
||||
|
||||
saveFileDialog1.FileName = fileNameNoExt + suffix;
|
||||
saveFileDialog1.InitialDirectory = Path.GetDirectoryName(_subtitleOriginalFileName);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveFileDialog1.FileName = string.Empty;
|
||||
|
@ -7,6 +7,7 @@ using Nikse.SubtitleEdit.Core.Translate.Service;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.NetworkInformation;
|
||||
@ -219,10 +220,14 @@ namespace Nikse.SubtitleEdit.Forms.Translate
|
||||
|
||||
public static string EvaluateDefaultTargetLanguageCode(string defaultSourceLanguage)
|
||||
{
|
||||
var installedLanguages = new List<InputLanguage>();
|
||||
var installedLanguages = new List<string>();
|
||||
foreach (InputLanguage language in InputLanguage.InstalledInputLanguages)
|
||||
{
|
||||
installedLanguages.Add(language);
|
||||
var iso639 = Iso639Dash2LanguageCode.GetTwoLetterCodeFromEnglishName(language.LayoutName);
|
||||
if (!string.IsNullOrEmpty(iso639) && !installedLanguages.Contains(iso639))
|
||||
{
|
||||
installedLanguages.Add(iso639.ToLowerInvariant());
|
||||
}
|
||||
}
|
||||
|
||||
var uiCultureTargetLanguage = Configuration.Settings.Tools.GoogleTranslateLastTargetLanguage;
|
||||
@ -234,7 +239,7 @@ namespace Nikse.SubtitleEdit.Forms.Translate
|
||||
if (temp.Length > 4)
|
||||
{
|
||||
temp = temp.Substring(temp.Length - 5, 2).ToLowerInvariant();
|
||||
if (temp != defaultSourceLanguage && installedLanguages.Any(p => p.Culture.TwoLetterISOLanguageName.Contains(temp)))
|
||||
if (temp != defaultSourceLanguage && installedLanguages.Any(p => p.Contains(temp)))
|
||||
{
|
||||
uiCultureTargetLanguage = temp;
|
||||
break;
|
||||
@ -247,14 +252,32 @@ namespace Nikse.SubtitleEdit.Forms.Translate
|
||||
{
|
||||
foreach (var language in installedLanguages)
|
||||
{
|
||||
if (language.Culture.TwoLetterISOLanguageName != defaultSourceLanguage)
|
||||
if (language != defaultSourceLanguage)
|
||||
{
|
||||
uiCultureTargetLanguage = language.Culture.TwoLetterISOLanguageName;
|
||||
uiCultureTargetLanguage = language;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (uiCultureTargetLanguage == defaultSourceLanguage)
|
||||
{
|
||||
var name = CultureInfo.CurrentCulture.Name;
|
||||
if (name.Length > 2)
|
||||
{
|
||||
name = name.Remove(0, name.Length - 2);
|
||||
}
|
||||
var iso = IsoCountryCodes.ThreeToTwoLetterLookup.FirstOrDefault(p => p.Value == name);
|
||||
if (!iso.Equals(default(KeyValuePair<string, string>)))
|
||||
{
|
||||
var iso639 = Iso639Dash2LanguageCode.GetTwoLetterCodeFromThreeLetterCode(iso.Key);
|
||||
if (!string.IsNullOrEmpty(iso639))
|
||||
{
|
||||
uiCultureTargetLanguage = iso639;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set target language to something different than source language
|
||||
if (uiCultureTargetLanguage == defaultSourceLanguage && defaultSourceLanguage == "en")
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user