diff --git a/src/NzbDrone.Core/Parser/IsoLanguage.cs b/src/NzbDrone.Core/Parser/IsoLanguage.cs index 7a8e3251c..8f5886b2c 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguage.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguage.cs @@ -1,9 +1,13 @@ -namespace NzbDrone.Core.Parser +using System.Collections.Generic; +using System.Linq; + +namespace NzbDrone.Core.Parser { public class IsoLanguage { public string TwoLetterCode { get; set; } public string ThreeLetterCode { get; set; } + public List AltCodes = new List(); public Language Language { get; set; } public IsoLanguage(string twoLetterCode, string threeLetterCode, Language language) @@ -13,5 +17,14 @@ Language = language; } + public IsoLanguage(List twoLetterCodes, string threeLetterCode, Language language) + { + TwoLetterCode = twoLetterCodes.First(); + twoLetterCodes.RemoveAt(0); + ThreeLetterCode = threeLetterCode; + Language = language; + AltCodes.AddRange(twoLetterCodes); + } + } } diff --git a/src/NzbDrone.Core/Parser/IsoLanguages.cs b/src/NzbDrone.Core/Parser/IsoLanguages.cs index 86a4604cb..0dd1e98e0 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguages.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguages.cs @@ -7,9 +7,7 @@ namespace NzbDrone.Core.Parser { private static readonly HashSet All = new HashSet { - new IsoLanguage("en", "eng", Language.English), - new IsoLanguage("us", "usa", Language.English), //For tmdb mapping - new IsoLanguage("uk", "brit", Language.English), //For tmdb mapping too. + new IsoLanguage(new List {"en", "us", "uk"}, "eng", Language.English), new IsoLanguage("fr", "fra", Language.French), new IsoLanguage("es", "spa", Language.Spanish), new IsoLanguage("de", "deu", Language.German), @@ -39,7 +37,7 @@ namespace NzbDrone.Core.Parser if (isoCode.Length == 2) { //Lookup ISO639-1 code - return All.SingleOrDefault(l => l.TwoLetterCode == isoCode); + return All.SingleOrDefault(l => l.TwoLetterCode == isoCode) ?? All.SingleOrDefault(l => l.AltCodes.Contains(isoCode)); } else if (isoCode.Length == 3) {