mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-04-23 22:07:07 -04:00
New: Add Urdu language
This commit is contained in:
parent
4728fa29ef
commit
66633b9b07
6 changed files with 59 additions and 3 deletions
|
@ -43,7 +43,23 @@ namespace NzbDrone.Core.Test.Languages
|
|||
new object[] { 31, Language.Slovak },
|
||||
new object[] { 32, Language.Thai },
|
||||
new object[] { 33, Language.PortugueseBrazil },
|
||||
new object[] { 34, Language.SpanishLatino }
|
||||
new object[] { 34, Language.SpanishLatino },
|
||||
new object[] { 35, Language.Romanian },
|
||||
new object[] { 36, Language.Latvian },
|
||||
new object[] { 37, Language.Persian },
|
||||
new object[] { 38, Language.Catalan },
|
||||
new object[] { 39, Language.Croatian },
|
||||
new object[] { 40, Language.Serbian },
|
||||
new object[] { 41, Language.Bosnian },
|
||||
new object[] { 42, Language.Estonian },
|
||||
new object[] { 43, Language.Tamil },
|
||||
new object[] { 44, Language.Indonesian },
|
||||
new object[] { 45, Language.Macedonian },
|
||||
new object[] { 46, Language.Slovenian },
|
||||
new object[] { 47, Language.Azerbaijani },
|
||||
new object[] { 48, Language.Uzbek },
|
||||
new object[] { 49, Language.Malay },
|
||||
new object[] { 50, Language.Urdu }
|
||||
};
|
||||
|
||||
public static object[] ToIntCases =
|
||||
|
@ -81,7 +97,23 @@ namespace NzbDrone.Core.Test.Languages
|
|||
new object[] { Language.Slovak, 31 },
|
||||
new object[] { Language.Thai, 32 },
|
||||
new object[] { Language.PortugueseBrazil, 33 },
|
||||
new object[] { Language.SpanishLatino, 34 }
|
||||
new object[] { Language.SpanishLatino, 34 },
|
||||
new object[] { Language.Romanian, 35 },
|
||||
new object[] { Language.Latvian, 36 },
|
||||
new object[] { Language.Persian, 37 },
|
||||
new object[] { Language.Catalan, 38 },
|
||||
new object[] { Language.Croatian, 39 },
|
||||
new object[] { Language.Serbian, 40 },
|
||||
new object[] { Language.Bosnian, 41 },
|
||||
new object[] { Language.Estonian, 42 },
|
||||
new object[] { Language.Tamil, 43 },
|
||||
new object[] { Language.Indonesian, 44 },
|
||||
new object[] { Language.Macedonian, 45 },
|
||||
new object[] { Language.Slovenian, 46 },
|
||||
new object[] { Language.Azerbaijani, 47 },
|
||||
new object[] { Language.Uzbek, 48 },
|
||||
new object[] { Language.Malay, 49 },
|
||||
new object[] { Language.Urdu, 50 }
|
||||
};
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -51,5 +51,14 @@ namespace NzbDrone.Core.Test.ParserTests
|
|||
var result = IsoLanguages.Find(isoCode);
|
||||
result.Language.Should().Be(Language.Czech);
|
||||
}
|
||||
|
||||
[TestCase("ur")]
|
||||
[TestCase("urd")]
|
||||
[TestCase("ur-PK")]
|
||||
public void should_return_urdu(string isoCode)
|
||||
{
|
||||
var result = IsoLanguages.Find(isoCode);
|
||||
result.Language.Should().Be(Language.Urdu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -509,6 +509,13 @@ namespace NzbDrone.Core.Test.ParserTests
|
|||
result.Languages.Should().Contain(Language.Uzbek);
|
||||
}
|
||||
|
||||
[TestCase("Title.the.Series.2009.S01E14.Urdu.HDTV.XviD-LOL")]
|
||||
public void should_parse_language_urdu(string postTitle)
|
||||
{
|
||||
var result = LanguageParser.ParseLanguages(postTitle);
|
||||
result.Should().Contain(Language.Urdu);
|
||||
}
|
||||
|
||||
[TestCase("Name (2020) - S01E20 - [AAC 2.0].testtitle.default.eng.forced.ass", new[] { "default", "forced" }, "testtitle", "English")]
|
||||
[TestCase("Name (2020) - S01E20 - [AAC 2.0].eng.default.testtitle.forced.ass", new[] { "default", "forced" }, "testtitle", "English")]
|
||||
[TestCase("Name (2020) - S01E20 - [AAC 2.0].default.eng.testtitle.forced.ass", new[] { "default", "forced" }, "testtitle", "English")]
|
||||
|
|
|
@ -120,6 +120,7 @@ namespace NzbDrone.Core.Languages
|
|||
public static Language Azerbaijani => new Language(47, "Azerbaijani");
|
||||
public static Language Uzbek => new Language(48, "Uzbek");
|
||||
public static Language Malay => new Language(49, "Malay");
|
||||
public static Language Urdu => new Language(50, "Urdu");
|
||||
public static Language Original => new Language(-2, "Original");
|
||||
|
||||
public static List<Language> All
|
||||
|
@ -178,6 +179,7 @@ namespace NzbDrone.Core.Languages
|
|||
Azerbaijani,
|
||||
Uzbek,
|
||||
Malay,
|
||||
Urdu,
|
||||
Original
|
||||
};
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ namespace NzbDrone.Core.Parser
|
|||
new IsoLanguage("az", "", "aze", Language.Azerbaijani),
|
||||
new IsoLanguage("uz", "", "uzb", Language.Uzbek),
|
||||
new IsoLanguage("ms", "", "msa", Language.Malay),
|
||||
new IsoLanguage("ur", "", "urd", Language.Urdu)
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, Language> AlternateIsoCodeMappings = new Dictionary<string, Language>
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace NzbDrone.Core.Parser
|
|||
new RegexReplace(@".*?[_. ](S\d{2}(?:E\d{2,4})*[_. ].*)", "$1", RegexOptions.Compiled | RegexOptions.IgnoreCase)
|
||||
};
|
||||
|
||||
private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?<english>\b(?:ing|eng)\b)|(?<italian>\b(?:ita|italian)\b)|(?<german>german\b|videomann|ger[. ]dub|\bger\b)|(?<flemish>flemish)|(?<greek>greek)|(?<french>(?:\W|_|\b)(?:FR|VF|VF2|VFF|VFI|VFQ|TRUEFRENCH|FRENCH|FRE|FRA)(?:\W|_|\b))|(?<russian>\b(?:rus|ru)\b)|(?<hungarian>\b(?:HUNDUB|HUN)\b)|(?<hebrew>\bHebDub\b)|(?<polish>\b(?:PL\W?DUB|DUB\W?PL|LEK\W?PL|PL\W?LEK)\b)|(?<chinese>\[(?:CH[ST]|BIG5|GB)\]|简|繁|字幕)|(?<bulgarian>\bbgaudio\b)|(?<spanish>\b(?:español|castellano|esp|spa(?!\(Latino\)))\b)|(?<ukrainian>\b(?:\dx?)?(?:ukr))|(?<thai>\b(?:THAI)\b)|(?<romanian>\b(?:RoDubbed|ROMANIAN)\b)|(?<catalan>[-,. ]cat[. ](?:DD|subs)|\b(?:catalan|catalán)\b)|(?<latvian>\b(?:lat|lav|lv)\b)|(?<turkish>\b(?:tur)\b)|(?<original>\b(?:orig|original)\b)",
|
||||
private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?<english>\b(?:ing|eng)\b)|(?<italian>\b(?:ita|italian)\b)|(?<german>german\b|videomann|ger[. ]dub|\bger\b)|(?<flemish>flemish)|(?<greek>greek)|(?<french>(?:\W|_|\b)(?:FR|VF|VF2|VFF|VFI|VFQ|TRUEFRENCH|FRENCH|FRE|FRA)(?:\W|_|\b))|(?<russian>\b(?:rus|ru)\b)|(?<hungarian>\b(?:HUNDUB|HUN)\b)|(?<hebrew>\bHebDub\b)|(?<polish>\b(?:PL\W?DUB|DUB\W?PL|LEK\W?PL|PL\W?LEK)\b)|(?<chinese>\[(?:CH[ST]|BIG5|GB)\]|简|繁|字幕)|(?<bulgarian>\bbgaudio\b)|(?<spanish>\b(?:español|castellano|esp|spa(?!\(Latino\)))\b)|(?<ukrainian>\b(?:\dx?)?(?:ukr))|(?<thai>\b(?:THAI)\b)|(?<romanian>\b(?:RoDubbed|ROMANIAN)\b)|(?<catalan>[-,. ]cat[. ](?:DD|subs)|\b(?:catalan|catalán)\b)|(?<latvian>\b(?:lat|lav|lv)\b)|(?<turkish>\b(?:tur)\b)|(?<urdu>\burdu\b)|(?<original>\b(?:orig|original)\b)",
|
||||
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||
|
||||
private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?:(?i)(?<!SUB[\W|_|^]))(?:(?<lithuanian>\bLT\b)|(?<czech>\bCZ\b)|(?<polish>\bPL\b)|(?<bulgarian>\bBG\b)|(?<slovak>\bSK\b)|(?<german>\bDE\b))(?:(?i)(?![\W|_|^]SUB))",
|
||||
|
@ -486,6 +486,11 @@ namespace NzbDrone.Core.Parser
|
|||
languages.Add(Language.Turkish);
|
||||
}
|
||||
|
||||
if (match.Groups["urdu"].Success)
|
||||
{
|
||||
languages.Add(Language.Urdu);
|
||||
}
|
||||
|
||||
if (match.Groups["original"].Success)
|
||||
{
|
||||
languages.Add(Language.Original);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue