Lidarr/src/NzbDrone.Core/Parser/IsoLanguages.cs

54 lines
3.1 KiB
C#
Raw Normal View History

2017-09-04 02:20:56 +00:00
using System.Collections.Generic;
using System.Linq;
namespace NzbDrone.Core.Parser
{
public static class IsoLanguages
{
private static readonly HashSet<IsoLanguage> All = new HashSet<IsoLanguage>
{
new IsoLanguage("en", "eng"),
new IsoLanguage("fr", "fra"),
new IsoLanguage("es", "spa"),
new IsoLanguage("de", "deu"),
new IsoLanguage("it", "ita"),
new IsoLanguage("da", "dan"),
new IsoLanguage("nl", "nld"),
new IsoLanguage("ja", "jpn"),
2020-01-02 20:55:23 +00:00
new IsoLanguage("is", "isl"),
new IsoLanguage("zh", "zho"),
new IsoLanguage("ru", "rus"),
new IsoLanguage("pl", "pol"),
new IsoLanguage("vi", "vie"),
new IsoLanguage("sv", "swe"),
new IsoLanguage("no", "nor"),
2020-01-02 20:55:23 +00:00
new IsoLanguage("nb", "nob"), // Norwegian Bokmål
new IsoLanguage("fi", "fin"),
new IsoLanguage("tr", "tur"),
new IsoLanguage("pt", "por"),
new IsoLanguage("el", "ell"),
new IsoLanguage("ko", "kor"),
2020-01-02 20:55:23 +00:00
new IsoLanguage("hu", "hun"),
new IsoLanguage("he", "heb"),
new IsoLanguage("lt", "lit"),
new IsoLanguage("cs", "ces")
};
public static IsoLanguage Find(string isoCode)
{
if (isoCode.Length == 2)
{
//Lookup ISO639-1 code
return All.SingleOrDefault(l => l.TwoLetterCode == isoCode);
}
else if (isoCode.Length == 3)
{
//Lookup ISO639-2T code
return All.SingleOrDefault(l => l.ThreeLetterCode == isoCode);
}
return null;
}
}
}