diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 4b430e171..c86948b17 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -54,6 +54,8 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("2 Broke Girls - S01E01 - Pilot.en.sub", Language.English)] [TestCase("2 Broke Girls - S01E01 - Pilot.eng.sub", Language.English)] + [TestCase("2 Broke Girls - S01E01 - Pilot.English.sub", Language.English)] + [TestCase("2 Broke Girls - S01E01 - Pilot.english.sub", Language.English)] [TestCase("2 Broke Girls - S01E01 - Pilot.sub", Language.Unknown)] public void should_parse_subtitle_language(string fileName, Language language) { diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index 9e5b63a81..a2de40b84 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -110,7 +110,7 @@ namespace NzbDrone.Core.Parser { try { - Logger.Debug("Parsing language from subtitlte file: {0}", fileName); + Logger.Debug("Parsing language from subtitle file: {0}", fileName); var simpleFilename = Path.GetFileNameWithoutExtension(fileName); var languageMatch = SubtitleLanguageRegex.Match(simpleFilename); @@ -123,13 +123,21 @@ namespace NzbDrone.Core.Parser return isoLanguage?.Language ?? Language.Unknown; } - Logger.Debug("Unable to parse langauge from subtitle file: {0}", fileName); + foreach (Language language in Enum.GetValues(typeof(Language))) + { + if (simpleFilename.EndsWith(language.ToString(), StringComparison.OrdinalIgnoreCase)) + { + return language; + } + } + + Logger.Debug("Unable to parse language from subtitle file: {0}", fileName); } catch (Exception ex) { - Logger.Debug("Failed parsing langauge from subtitle file: {0}", fileName); + Logger.Debug(ex, "Failed parsing language from subtitle file: {0}", fileName); } - + return Language.Unknown; } }