1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-18 21:35:51 -04:00

New: Add Mongolian language

Co-authored-by: Bogdan <mynameisbogdan@users.noreply.github.com>
This commit is contained in:
Elerir
2025-05-21 11:08:15 +02:00
committed by GitHub
parent cc8bffc272
commit b823ad8e65
9 changed files with 41 additions and 5 deletions
@@ -67,7 +67,8 @@ namespace NzbDrone.Core.Test.Languages
new object[] { 52, Language.Marathi }, new object[] { 52, Language.Marathi },
new object[] { 53, Language.Tagalog }, new object[] { 53, Language.Tagalog },
new object[] { 54, Language.Urdu }, new object[] { 54, Language.Urdu },
new object[] { 55, Language.Romansh } new object[] { 55, Language.Romansh },
new object[] { 56, Language.Mongolian }
}; };
public static object[] ToIntCases = public static object[] ToIntCases =
@@ -129,7 +130,8 @@ namespace NzbDrone.Core.Test.Languages
new object[] { Language.Marathi, 52 }, new object[] { Language.Marathi, 52 },
new object[] { Language.Tagalog, 53 }, new object[] { Language.Tagalog, 53 },
new object[] { Language.Urdu, 54 }, new object[] { Language.Urdu, 54 },
new object[] { Language.Romansh, 55 } new object[] { Language.Romansh, 55 },
new object[] { Language.Mongolian, 56 }
}; };
[Test] [Test]
@@ -405,6 +405,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests
[TestCase("ice", "IS")] [TestCase("ice", "IS")]
[TestCase("dut", "NL")] [TestCase("dut", "NL")]
[TestCase("nor", "NO")] [TestCase("nor", "NO")]
[TestCase("khk", "MN")]
[TestCase("mvf", "MN")]
public void should_format_languagecodes_properly(string language, string code) public void should_format_languagecodes_properly(string language, string code)
{ {
_namingConfig.StandardMovieFormat = "{Movie.Title}.{MEDIAINFO.FULL}"; _namingConfig.StandardMovieFormat = "{Movie.Title}.{MEDIAINFO.FULL}";
@@ -98,5 +98,16 @@ namespace NzbDrone.Core.Test.ParserTests
var result = IsoLanguages.Find(isoCode); var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Romansh); result.Language.Should().Be(Language.Romansh);
} }
[TestCase("mn")]
[TestCase("mon")]
[TestCase("khk")]
[TestCase("mvf")]
[TestCase("mn-Cyrl")]
public void should_return_mongolian(string isoCode)
{
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Mongolian);
}
} }
} }
@@ -513,6 +513,14 @@ namespace NzbDrone.Core.Test.ParserTests
result.Should().Contain(Language.Romansh); result.Should().Contain(Language.Romansh);
} }
[TestCase("Movie.Title.2025.Mongolian.WEB-DL.h264")]
[TestCase("Movie.Title.2025.Khalkha.WEB-DL.h264")]
public void should_parse_language_mongolian(string postTitle)
{
var result = LanguageParser.ParseLanguages(postTitle);
result.Should().Contain(Language.Mongolian);
}
[TestCase("Movie.Title.en.sub")] [TestCase("Movie.Title.en.sub")]
[TestCase("Movie Title.eng.sub")] [TestCase("Movie Title.eng.sub")]
[TestCase("Movie.Title.eng.forced.sub")] [TestCase("Movie.Title.eng.forced.sub")]
@@ -73,6 +73,8 @@ namespace NzbDrone.Core.ImportLists.TMDb
[FieldOption(Hint = "Urdu")] [FieldOption(Hint = "Urdu")]
ur, ur,
[FieldOption(Hint = "Raeto-Romance")] [FieldOption(Hint = "Raeto-Romance")]
rm rm,
[FieldOption(Hint = "Mongolian")]
mn
} }
} }
+2
View File
@@ -126,6 +126,7 @@ namespace NzbDrone.Core.Languages
public static Language Tagalog => new Language(53, "Tagalog"); public static Language Tagalog => new Language(53, "Tagalog");
public static Language Urdu => new Language(54, "Urdu"); public static Language Urdu => new Language(54, "Urdu");
public static Language Romansh => new Language(55, "Romansh"); public static Language Romansh => new Language(55, "Romansh");
public static Language Mongolian => new Language(56, "Mongolian");
public static Language Any => new Language(-1, "Any"); public static Language Any => new Language(-1, "Any");
public static Language Original => new Language(-2, "Original"); public static Language Original => new Language(-2, "Original");
@@ -191,6 +192,7 @@ namespace NzbDrone.Core.Languages
Tagalog, Tagalog,
Urdu, Urdu,
Romansh, Romansh,
Mongolian,
Any, Any,
Original Original
}; };
@@ -79,7 +79,9 @@ namespace NzbDrone.Core.Organizer
{ "rum", "ron" }, { "rum", "ron" },
{ "slo", "slk" }, { "slo", "slk" },
{ "tib", "bod" }, { "tib", "bod" },
{ "wel", "cym" } { "wel", "cym" },
{ "khk", "mon" },
{ "mvf", "mon" }
}.ToImmutableDictionary(); }.ToImmutableDictionary();
public static readonly ImmutableArray<string> BadCharacters = ImmutableArray.Create("\\", "/", "<", ">", "?", "*", "|", "\""); public static readonly ImmutableArray<string> BadCharacters = ImmutableArray.Create("\\", "/", "<", ">", "?", "*", "|", "\"");
+2 -1
View File
@@ -64,7 +64,8 @@ namespace NzbDrone.Core.Parser
new IsoLanguage("mr", "", "mar", "Marathi", Language.Marathi), new IsoLanguage("mr", "", "mar", "Marathi", Language.Marathi),
new IsoLanguage("tl", "", "tgl", "Tagalog", Language.Tagalog), new IsoLanguage("tl", "", "tgl", "Tagalog", Language.Tagalog),
new IsoLanguage("ur", "", "urd", "Urdu", Language.Urdu), new IsoLanguage("ur", "", "urd", "Urdu", Language.Urdu),
new IsoLanguage("rm", "", "roh", "Romansh", Language.Romansh) new IsoLanguage("rm", "", "roh", "Romansh", Language.Romansh),
new IsoLanguage("mn", "", "mon", "Mongolian", Language.Mongolian)
}; };
private static readonly Dictionary<string, Language> AlternateIsoCodeMappings = new () private static readonly Dictionary<string, Language> AlternateIsoCodeMappings = new ()
@@ -39,6 +39,7 @@ namespace NzbDrone.Core.Parser
(?<korean>\bKOR\b)| (?<korean>\bKOR\b)|
(?<urdu>\burdu\b)| (?<urdu>\burdu\b)|
(?<romansh>\b(?:romansh|rumantsch|romansch)\b)| (?<romansh>\b(?:romansh|rumantsch|romansch)\b)|
(?<mongolian>\b(?:mongolian|khalkha)\b)|
(?<original>\b(?:orig|original)\b)", (?<original>\b(?:orig|original)\b)",
RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace); RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);
@@ -432,6 +433,11 @@ namespace NzbDrone.Core.Parser
languages.Add(Language.Romansh); languages.Add(Language.Romansh);
} }
if (match.Groups["mongolian"].Success)
{
languages.Add(Language.Mongolian);
}
if (match.Groups["original"].Success) if (match.Groups["original"].Success)
{ {
languages.Add(Language.Original); languages.Add(Language.Original);