internal static string[] GetTextPrefixes(this Variant v)
        {
            switch (v)
            {
            case Variant.V1606nict: return(new string[] { "frm" });

            case Variant.V1694acad: return(new string[] { "fr" });

            case Variant.V1901: return(new string[] { "de" });

            case Variant.V1959acad: return(new string[] { "be" });

            case Variant.V1994: return(new string[] { "sl-rozaj", "sl-rozaj-biske", "sl-rozaj-njiva", "sl-rozaj-osojs", "sl-rozaj-solba" });

            case Variant.V1996: return(new string[] { "de" });

            case Variant.Abl1943: return(new string[] { "pt-BR" });

            case Variant.Alalc97: return(new string[] {  });

            case Variant.Aluku: return(new string[] { "djk" });

            case Variant.Akuapem: return(new string[] { "tw" });

            case Variant.Ao1990: return(new string[] { "pt", "gl" });

            case Variant.Aranes: return(new string[] { "oc" });

            case Variant.Arevela: return(new string[] { "hy" });

            case Variant.Arevmda: return(new string[] { "hy" });

            case Variant.Asante: return(new string[] { "tw" });

            case Variant.Auvern: return(new string[] { "oc" });

            case Variant.Baku1926: return(new string[] { "az", "ba", "crh", "kk", "krc", "ky", "sah", "tk", "tt", "uz" });

            case Variant.Balanka: return(new string[] { "blo" });

            case Variant.Barla: return(new string[] { "kea" });

            case Variant.Basiceng: return(new string[] { "en" });

            case Variant.Bauddha: return(new string[] { "sa" });

            case Variant.Biscayan: return(new string[] { "eu" });

            case Variant.Biske: return(new string[] { "sl-rozaj" });

            case Variant.Bohoric: return(new string[] { "sl" });

            case Variant.Boont: return(new string[] { "en" });

            case Variant.Bornholm: return(new string[] { "da" });

            case Variant.Cisaup: return(new string[] { "oc" });

            case Variant.Colb1945: return(new string[] { "pt" });

            case Variant.Cornu: return(new string[] { "en" });

            case Variant.Creiss: return(new string[] { "oc" });

            case Variant.Dajnko: return(new string[] { "sl" });

            case Variant.Ekavsk: return(new string[] { "sr", "sr-Latn", "sr-Cyrl" });

            case Variant.Emodeng: return(new string[] { "en" });

            case Variant.Fonipa: return(new string[] {  });

            case Variant.Fonkirsh: return(new string[] {  });

            case Variant.Fonnapa: return(new string[] {  });

            case Variant.Fonupa: return(new string[] {  });

            case Variant.Fonxsamp: return(new string[] {  });

            case Variant.Gascon: return(new string[] { "oc" });

            case Variant.Grclass: return(new string[] { "oc" });

            case Variant.Grital: return(new string[] { "oc" });

            case Variant.Grmistr: return(new string[] { "oc" });

            case Variant.Hepburn: return(new string[] { "ja-Latn" });

            case Variant.Hognorsk: return(new string[] { "nn" });

            case Variant.Hsistemo: return(new string[] { "eo" });

            case Variant.Ijekavsk: return(new string[] { "sr", "sr-Latn", "sr-Cyrl" });

            case Variant.Itihasa: return(new string[] { "sa" });

            case Variant.Ivanchov: return(new string[] { "bg" });

            case Variant.Jauer: return(new string[] { "rm" });

            case Variant.Jyutping: return(new string[] { "yue" });

            case Variant.Kkcor: return(new string[] { "kw" });

            case Variant.Kociewie: return(new string[] { "pl" });

            case Variant.Kscor: return(new string[] { "kw" });

            case Variant.Laukika: return(new string[] { "sa" });

            case Variant.Lemosin: return(new string[] { "oc" });

            case Variant.Lengadoc: return(new string[] { "oc" });

            case Variant.Lipaw: return(new string[] { "sl-rozaj" });

            case Variant.Luna1918: return(new string[] { "ru" });

            case Variant.Metelko: return(new string[] { "sl" });

            case Variant.Monoton: return(new string[] { "el" });

            case Variant.Ndyuka: return(new string[] { "djk" });

            case Variant.Nedis: return(new string[] { "sl" });

            case Variant.Newfound: return(new string[] { "en-CA" });

            case Variant.Nicard: return(new string[] { "oc" });

            case Variant.Njiva: return(new string[] { "sl-rozaj" });

            case Variant.Nulik: return(new string[] { "vo" });

            case Variant.Osojs: return(new string[] { "sl-rozaj" });

            case Variant.Oxendict: return(new string[] { "en" });

            case Variant.Pahawh2: return(new string[] { "mww", "hnj" });

            case Variant.Pahawh3: return(new string[] { "mww", "hnj" });

            case Variant.Pahawh4: return(new string[] { "mww", "hnj" });

            case Variant.Pamaka: return(new string[] { "djk" });

            case Variant.Petr1708: return(new string[] { "ru" });

            case Variant.Pinyin: return(new string[] { "zh-Latn", "bo-Latn" });

            case Variant.Polyton: return(new string[] { "el" });

            case Variant.Provenc: return(new string[] { "oc" });

            case Variant.Puter: return(new string[] { "rm" });

            case Variant.Rigik: return(new string[] { "vo" });

            case Variant.Rozaj: return(new string[] { "sl" });

            case Variant.Rumgr: return(new string[] { "rm" });

            case Variant.Scotland: return(new string[] { "en" });

            case Variant.Scouse: return(new string[] { "en" });

            case Variant.Simple: return(new string[] {  });

            case Variant.Solba: return(new string[] { "sl-rozaj" });

            case Variant.Sotav: return(new string[] { "kea" });

            case Variant.Spanglis: return(new string[] { "en", "es" });

            case Variant.Surmiran: return(new string[] { "rm" });

            case Variant.Sursilv: return(new string[] { "rm" });

            case Variant.Sutsilv: return(new string[] { "rm" });

            case Variant.Tarask: return(new string[] { "be" });

            case Variant.Uccor: return(new string[] { "kw" });

            case Variant.Ucrcor: return(new string[] { "kw" });

            case Variant.Ulster: return(new string[] { "sco" });

            case Variant.Unifon: return(new string[] { "en", "hup", "kyh", "tol", "yur" });

            case Variant.Vaidika: return(new string[] { "sa" });

            case Variant.Valencia: return(new string[] { "ca" });

            case Variant.Vallader: return(new string[] { "rm" });

            case Variant.Vivaraup: return(new string[] { "oc" });

            case Variant.Wadegile: return(new string[] { "zh-Latn" });

            case Variant.Xsistemo: return(new string[] { "eo" });

            default:
                throw new NotImplementedException("unexpected value: " + v);
            }
        }
        public static string ToText(this Variant v)
        {
            switch (v)
            {
            case Variant.V1606nict: return("1606nict");

            case Variant.V1694acad: return("1694acad");

            case Variant.V1901: return("1901");

            case Variant.V1959acad: return("1959acad");

            case Variant.V1994: return("1994");

            case Variant.V1996: return("1996");

            case Variant.Abl1943: return("abl1943");

            case Variant.Alalc97: return("alalc97");

            case Variant.Aluku: return("aluku");

            case Variant.Akuapem: return("akuapem");

            case Variant.Ao1990: return("ao1990");

            case Variant.Aranes: return("aranes");

            case Variant.Arevela: return("arevela");

            case Variant.Arevmda: return("arevmda");

            case Variant.Asante: return("asante");

            case Variant.Auvern: return("auvern");

            case Variant.Baku1926: return("baku1926");

            case Variant.Balanka: return("balanka");

            case Variant.Barla: return("barla");

            case Variant.Basiceng: return("basiceng");

            case Variant.Bauddha: return("bauddha");

            case Variant.Biscayan: return("biscayan");

            case Variant.Biske: return("biske");

            case Variant.Bohoric: return("bohoric");

            case Variant.Boont: return("boont");

            case Variant.Bornholm: return("bornholm");

            case Variant.Cisaup: return("cisaup");

            case Variant.Colb1945: return("colb1945");

            case Variant.Cornu: return("cornu");

            case Variant.Creiss: return("creiss");

            case Variant.Dajnko: return("dajnko");

            case Variant.Ekavsk: return("ekavsk");

            case Variant.Emodeng: return("emodeng");

            case Variant.Fonipa: return("fonipa");

            case Variant.Fonkirsh: return("fonkirsh");

            case Variant.Fonnapa: return("fonnapa");

            case Variant.Fonupa: return("fonupa");

            case Variant.Fonxsamp: return("fonxsamp");

            case Variant.Gascon: return("gascon");

            case Variant.Grclass: return("grclass");

            case Variant.Grital: return("grital");

            case Variant.Grmistr: return("grmistr");

            case Variant.Hepburn: return("hepburn");

            case Variant.Hognorsk: return("hognorsk");

            case Variant.Hsistemo: return("hsistemo");

            case Variant.Ijekavsk: return("ijekavsk");

            case Variant.Itihasa: return("itihasa");

            case Variant.Ivanchov: return("ivanchov");

            case Variant.Jauer: return("jauer");

            case Variant.Jyutping: return("jyutping");

            case Variant.Kkcor: return("kkcor");

            case Variant.Kociewie: return("kociewie");

            case Variant.Kscor: return("kscor");

            case Variant.Laukika: return("laukika");

            case Variant.Lemosin: return("lemosin");

            case Variant.Lengadoc: return("lengadoc");

            case Variant.Lipaw: return("lipaw");

            case Variant.Luna1918: return("luna1918");

            case Variant.Metelko: return("metelko");

            case Variant.Monoton: return("monoton");

            case Variant.Ndyuka: return("ndyuka");

            case Variant.Nedis: return("nedis");

            case Variant.Newfound: return("newfound");

            case Variant.Nicard: return("nicard");

            case Variant.Njiva: return("njiva");

            case Variant.Nulik: return("nulik");

            case Variant.Osojs: return("osojs");

            case Variant.Oxendict: return("oxendict");

            case Variant.Pahawh2: return("pahawh2");

            case Variant.Pahawh3: return("pahawh3");

            case Variant.Pahawh4: return("pahawh4");

            case Variant.Pamaka: return("pamaka");

            case Variant.Petr1708: return("petr1708");

            case Variant.Pinyin: return("pinyin");

            case Variant.Polyton: return("polyton");

            case Variant.Provenc: return("provenc");

            case Variant.Puter: return("puter");

            case Variant.Rigik: return("rigik");

            case Variant.Rozaj: return("rozaj");

            case Variant.Rumgr: return("rumgr");

            case Variant.Scotland: return("scotland");

            case Variant.Scouse: return("scouse");

            case Variant.Simple: return("simple");

            case Variant.Solba: return("solba");

            case Variant.Sotav: return("sotav");

            case Variant.Spanglis: return("spanglis");

            case Variant.Surmiran: return("surmiran");

            case Variant.Sursilv: return("sursilv");

            case Variant.Sutsilv: return("sutsilv");

            case Variant.Tarask: return("tarask");

            case Variant.Uccor: return("uccor");

            case Variant.Ucrcor: return("ucrcor");

            case Variant.Ulster: return("ulster");

            case Variant.Unifon: return("unifon");

            case Variant.Vaidika: return("vaidika");

            case Variant.Valencia: return("valencia");

            case Variant.Vallader: return("vallader");

            case Variant.Vivaraup: return("vivaraup");

            case Variant.Wadegile: return("wadegile");

            case Variant.Xsistemo: return("xsistemo");

            default:
                throw new NotImplementedException("unexpected value: " + v);
            }
        }