using System.Globalization;

namespace Iceshrimp.Frontend.Core.Miscellaneous;

public static class LanguageHelper
{
    private static readonly List<string> Bcp47 =
    [
        "af",
        "am",
        "ar",
        "arn",
        "ary",
        "as",
        "az",
        "ba",
        "be",
        "bg",
        "bn",
        "bo",
        "br",
        "bs",
        "ca",
        "ckb",
        "co",
        "cs",
        "cy",
        "da",
        "de",
        "dsb",
        "dv",
        "el",
        "en",
        "es",
        "et",
        "eu",
        "fa",
        "fi",
        "fil",
        "fo",
        "fr",
        "fy",
        "ga",
        "gd",
        "gil",
        "gl",
        "gsw",
        "gu",
        "ha",
        "he",
        "hi",
        "hr",
        "hsb",
        "hu",
        "hy",
        "id",
        "ig",
        "ii",
        "is",
        "it",
        "iu",
        "ja",
        "ka",
        "kk",
        "kl",
        "km",
        "kn",
        "ko",
        "kok",
        "ku",
        "ky",
        "lb",
        "lo",
        "lt",
        "lv",
        "mi",
        "mk",
        "ml",
        "mn",
        "moh",
        "mr",
        "ms",
        "mt",
        "my",
        "nb",
        "ne",
        "nl",
        "nn",
        "no",
        "oc",
        "or",
        "pap",
        "pa",
        "pl",
        "prs",
        "ps",
        "pt",
        "quc",
        "qu",
        "rm",
        "ro",
        "ru",
        "rw",
        "sa",
        "sah",
        "se",
        "si",
        "sk",
        "sl",
        "sma",
        "smj",
        "smn",
        "sms",
        "sq",
        "sr",
        "st",
        "sv",
        "sw",
        "syc",
        "ta",
        "te",
        "tg",
        "th",
        "tk",
        "tn",
        "tr",
        "tt",
        "tzm",
        "ug",
        "uk",
        "ur",
        "uz",
        "vi",
        "wo",
        "xh",
        "yo",
        "zh",
        "zu"
    ];

    public static Dictionary<string, string> Bcp47Languages =>
        Bcp47.ToDictionary(c => c, c => CultureInfo.GetCultureInfo(c).NativeName);
}
