2015-12-25 09:22:00 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
2015-07-12 16:44:33 +00:00
|
|
|
|
using NzbDrone.Core.Languages;
|
2015-12-25 09:22:00 +00:00
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Parser
|
|
|
|
|
{
|
|
|
|
|
public static class IsoLanguages
|
|
|
|
|
{
|
|
|
|
|
private static readonly HashSet<IsoLanguage> All = new HashSet<IsoLanguage>
|
|
|
|
|
{
|
|
|
|
|
new IsoLanguage("en", "eng", Language.English),
|
|
|
|
|
new IsoLanguage("fr", "fra", Language.French),
|
|
|
|
|
new IsoLanguage("es", "spa", Language.Spanish),
|
|
|
|
|
new IsoLanguage("de", "deu", Language.German),
|
|
|
|
|
new IsoLanguage("it", "ita", Language.Italian),
|
|
|
|
|
new IsoLanguage("da", "dan", Language.Danish),
|
|
|
|
|
new IsoLanguage("nl", "nld", Language.Dutch),
|
|
|
|
|
new IsoLanguage("ja", "jpn", Language.Japanese),
|
2019-02-09 19:40:36 +00:00
|
|
|
|
new IsoLanguage("is", "isl", Language.Icelandic),
|
|
|
|
|
new IsoLanguage("zh", "zho", Language.Chinese),
|
2015-12-25 09:22:00 +00:00
|
|
|
|
new IsoLanguage("ru", "rus", Language.Russian),
|
|
|
|
|
new IsoLanguage("pl", "pol", Language.Polish),
|
|
|
|
|
new IsoLanguage("vi", "vie", Language.Vietnamese),
|
|
|
|
|
new IsoLanguage("sv", "swe", Language.Swedish),
|
|
|
|
|
new IsoLanguage("no", "nor", Language.Norwegian),
|
2020-01-02 20:55:23 +00:00
|
|
|
|
new IsoLanguage("nb", "nob", Language.Norwegian), // Norwegian Bokmål
|
2015-12-25 09:22:00 +00:00
|
|
|
|
new IsoLanguage("fi", "fin", Language.Finnish),
|
|
|
|
|
new IsoLanguage("tr", "tur", Language.Turkish),
|
|
|
|
|
new IsoLanguage("pt", "por", Language.Portuguese),
|
|
|
|
|
// new IsoLanguage("nl", "nld", Language.Flemish),
|
|
|
|
|
new IsoLanguage("el", "ell", Language.Greek),
|
|
|
|
|
new IsoLanguage("ko", "kor", Language.Korean),
|
2017-08-11 10:16:47 +00:00
|
|
|
|
new IsoLanguage("hu", "hun", Language.Hungarian),
|
2017-08-19 05:24:59 +00:00
|
|
|
|
new IsoLanguage("he", "heb", Language.Hebrew),
|
|
|
|
|
new IsoLanguage("lt", "lit", Language.Lithuanian),
|
|
|
|
|
new IsoLanguage("cs", "ces", Language.Czech)
|
2015-12-25 09:22:00 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IsoLanguage Get(Language language)
|
|
|
|
|
{
|
2020-01-02 20:55:23 +00:00
|
|
|
|
return All.FirstOrDefault(l => l.Language == language);
|
2015-12-25 09:22:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|