New: Georgian language support (#11209)

This commit is contained in:
grapexy 2025-08-18 07:11:49 +04:00 committed by GitHub
parent 50e75e1362
commit d38492188a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 39 additions and 4 deletions

View file

@ -68,7 +68,8 @@ public class LanguageFixture : CoreTest
new object[] { 53, Language.Tagalog },
new object[] { 54, Language.Urdu },
new object[] { 55, Language.Romansh },
new object[] { 56, Language.Mongolian }
new object[] { 56, Language.Mongolian },
new object[] { 57, Language.Georgian }
};
public static object[] ToIntCases =
@ -131,7 +132,8 @@ public class LanguageFixture : CoreTest
new object[] { Language.Tagalog, 53 },
new object[] { Language.Urdu, 54 },
new object[] { Language.Romansh, 55 },
new object[] { Language.Mongolian, 56 }
new object[] { Language.Mongolian, 56 },
new object[] { Language.Georgian, 57 }
};
[Test]

View file

@ -407,6 +407,8 @@ public void should_format_mediainfo_properly()
[TestCase("nor", "NO")]
[TestCase("khk", "MN")]
[TestCase("mvf", "MN")]
[TestCase("geo", "KA")]
[TestCase("kat", "KA")]
public void should_format_languagecodes_properly(string language, string code)
{
_namingConfig.StandardMovieFormat = "{Movie.Title}.{MEDIAINFO.FULL}";

View file

@ -119,5 +119,15 @@ public void should_return_bengali(string isoCode)
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Bengali);
}
[TestCase("ka")]
[TestCase("geo")]
[TestCase("kat")]
[TestCase("ka-GE")]
public void should_return_georgian(string isoCode)
{
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Georgian);
}
}
}

View file

@ -521,6 +521,16 @@ public void should_parse_language_mongolian(string postTitle)
result.Should().Contain(Language.Mongolian);
}
[TestCase("Movie.Title.1994.Georgian.WEB-DL.h264")]
[TestCase("Movie.Title.2016.Geo.WEB-DL.h264")]
[TestCase("Movie.Title.2016.KA.WEB-DL.h264")]
[TestCase("Movie.Title.2016.RU-KA.WEB-DL.h264")]
public void should_parse_language_georgian(string postTitle)
{
var result = LanguageParser.ParseLanguages(postTitle);
result.Should().Contain(Language.Georgian);
}
[TestCase("Movie.Title.en.sub")]
[TestCase("Movie Title.eng.sub")]
[TestCase("Movie.Title.eng.forced.sub")]

View file

@ -75,6 +75,8 @@ public enum TMDbLanguageCodes
[FieldOption(Hint = "Raeto-Romance")]
rm,
[FieldOption(Hint = "Mongolian")]
mn
mn,
[FieldOption(Hint = "Georgian")]
ka
}
}

View file

@ -127,6 +127,7 @@ public override bool Equals(object obj)
public static Language Urdu => new Language(54, "Urdu");
public static Language Romansh => new Language(55, "Romansh");
public static Language Mongolian => new Language(56, "Mongolian");
public static Language Georgian => new Language(57, "Georgian");
public static Language Any => new Language(-1, "Any");
public static Language Original => new Language(-2, "Original");
@ -193,6 +194,7 @@ public static List<Language> All
Urdu,
Romansh,
Mongolian,
Georgian,
Any,
Original
};

View file

@ -65,7 +65,8 @@ public static class IsoLanguages
new IsoLanguage("tl", "", "tgl", "Tagalog", Language.Tagalog),
new IsoLanguage("ur", "", "urd", "Urdu", Language.Urdu),
new IsoLanguage("rm", "", "roh", "Romansh", Language.Romansh),
new IsoLanguage("mn", "", "mon", "Mongolian", Language.Mongolian)
new IsoLanguage("mn", "", "mon", "Mongolian", Language.Mongolian),
new IsoLanguage("ka", "", "kat", "Georgian", Language.Georgian)
};
private static readonly Dictionary<string, Language> AlternateIsoCodeMappings = new ()

View file

@ -40,6 +40,7 @@ public static class LanguageParser
(?<urdu>\burdu\b)|
(?<romansh>\b(?:romansh|rumantsch|romansch)\b)|
(?<mongolian>\b(?:mongolian|khalkha)\b)|
(?<georgian>\b(?:georgian|geo|ka|kat)\b)|
(?<original>\b(?:orig|original)\b)",
RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);
@ -438,6 +439,11 @@ public static List<Language> ParseLanguages(string title)
languages.Add(Language.Mongolian);
}
if (match.Groups["georgian"].Success)
{
languages.Add(Language.Georgian);
}
if (match.Groups["original"].Success)
{
languages.Add(Language.Original);