diff --git a/src/Forms/ChangeCasing.cs b/src/Forms/ChangeCasing.cs index 13225e0b3..b1a3e6e0c 100644 --- a/src/Forms/ChangeCasing.cs +++ b/src/Forms/ChangeCasing.cs @@ -61,7 +61,7 @@ namespace Nikse.SubtitleEdit.Forms { var namesEtc = new List(); var tmp = new List(); - Utilities.LoadNamesEtcWordLists(tmp, tmp, Utilities.AutoDetectGoogleLanguage(subtitle)); + Utilities.LoadNamesEtcWordLists(tmp, tmp, language); foreach (var s in tmp) { if (s.Contains(".")) @@ -78,7 +78,7 @@ namespace Nikse.SubtitleEdit.Forms p.Text = FixCasing(p.Text, lastLine, namesEtc); // fix casing of English alone i to I - if (radioButtonNormal.Checked && language == "en" && p.Text.Contains("i")) + if (radioButtonNormal.Checked && language.StartsWith("en") && p.Text.Contains("i")) { Match match = aloneI.Match(p.Text); while (match.Success) diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index b0e830072..9b152d403 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -4448,7 +4448,7 @@ namespace Nikse.SubtitleEdit.Forms } bool saveChangeCaseChanges = true; - changeCasing.FixCasing(selectedLines, Utilities.AutoDetectGoogleLanguage(_subtitle)); + changeCasing.FixCasing(selectedLines, Utilities.AutoDetectLanguageName(Configuration.Settings.General.SpellCheckLanguage, _subtitle)); var changeCasingNames = new ChangeCasingNames(); if (changeCasing.ChangeNamesToo) { diff --git a/src/Forms/SpellCheck.cs b/src/Forms/SpellCheck.cs index 155525e16..89e790c6b 100644 --- a/src/Forms/SpellCheck.cs +++ b/src/Forms/SpellCheck.cs @@ -597,9 +597,6 @@ namespace Nikse.SubtitleEdit.Forms _namesEtcList = new List(); _namesEtcMultiWordList = new List(); _namesEtcListUppercase = new List(); - Utilities.LoadNamesEtcWordLists(_namesEtcList, _namesEtcMultiWordList, Utilities.AutoDetectGoogleLanguage(subtitle)); - foreach (string namesItem in _namesEtcList) - _namesEtcListUppercase.Add(namesItem.ToUpper()); _skipAllList = new List(); @@ -635,6 +632,10 @@ namespace Nikse.SubtitleEdit.Forms _languageName = Utilities.AutoDetectLanguageName(_languageName, subtitle); string dictionary = Utilities.DictionaryFolder + _languageName; + Utilities.LoadNamesEtcWordLists(_namesEtcList, _namesEtcMultiWordList, _languageName); + foreach (string namesItem in _namesEtcList) + _namesEtcListUppercase.Add(namesItem.ToUpper()); + _userWordList = new List(); _userWordDictionary = new XmlDocument(); if (File.Exists(dictionaryFolder + _languageName + "_user.xml")) diff --git a/src/Logic/Utilities.cs b/src/Logic/Utilities.cs index 9ad180a23..c1b08f7f6 100644 --- a/src/Logic/Utilities.cs +++ b/src/Logic/Utilities.cs @@ -817,6 +817,8 @@ namespace Nikse.SubtitleEdit.Logic public static string AutoDetectLanguageName(string languageName, Subtitle subtitle) { + if (string.IsNullOrEmpty(languageName)) + languageName = "en_US"; int bestCount = subtitle.Paragraphs.Count / 14; StringBuilder sb = new StringBuilder();